Редактировать 1: Сценарий
У меня несколько заказов с позициями. Пользователь может выбрать 1 или более количество из каждой позиции (и из нескольких заказов). Я сохраняю позицию с выбранным количеством в ASP.NET MVC Session. После того, как пользователь завершил свой выбор, он может нажать кнопку «Отправить», чтобы начать новый рабочий процесс .
Я пытаюсь отредактировать значения из JQGrid в Controller Action (ASP.NET MVC)
Я использую следующую функцию
function addNewItem() {
var ids = jQuery('#itemList').jqGrid().getDataIDs();
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
jQuery("#itemList").saveRow(ids[i], false);
}
jQuery('#itemList').jqGrid().trigger('reloadGrid');
jQuery('#selectedItemsList').jqGrid().trigger('reloadGrid');
return false;
}
Я добавляю выбранные элементы в переменную сеанса. Проблема в том, что все элементы добавляются в переменную сеанса один раз в синей луне. в остальное время оно изменяется от 0 до n -1, где n - общее количество отредактированных строк
Из журнала, который я создал, кажется, что я всегда получаю свежую копию переменной сеанса.
Есть ли какие-либо проблемы с функциями JQGrid saveRow, в которых несколько запросов могут выполняться параллельно, получая пустую копию переменной хранилища seesion.
Пожалуйста, взгляните на информацию, которую я зарегистрировал:
Текущее количество записей: количество коллекций из переменной сеанса
Идентификатор товара - это GUID
Количество отделяется комой ','
**The problem is that the data is not**
INFO 2011-11-23 05:06:52 – =========================================
INFO 2011-11-23 05:06:52 – Current Number of Records: 0
INFO 2011-11-23 05:06:52 – *******
INFO 2011-11-23 05:06:52 – Starting to Attach: 53692f01-ddba-44f0-9743-89f9a3d8153d, 3
INFO 2011-11-23 05:06:52 – 53692f01-ddba-44f0-9743-89f9a3d8153d: New Added with qty 3
INFO 2011-11-23 05:06:52 – Current Number of Records: 1
INFO 2011-11-23 05:06:52 – New Request Started
INFO 2011-11-23 05:06:52 – =========================================
INFO 2011-11-23 05:06:52 – Current Number of Records: 0
INFO 2011-11-23 05:06:52 – *******
INFO 2011-11-23 05:06:52 – Starting to Attach: 3b22ba9d-9ada-42f0-925a-acc498611599, 12
INFO 2011-11-23 05:06:52 – 3b22ba9d-9ada-42f0-925a-acc498611599: New Added with qty 12
INFO 2011-11-23 05:06:52 – Current Number of Records: 1
INFO 2011-11-23 05:06:52 – New Request Started
INFO 2011-11-23 05:06:52 – =========================================
INFO 2011-11-23 05:06:52 – Current Number of Records: 0
INFO 2011-11-23 05:06:52 – *******
INFO 2011-11-23 05:06:52 – Starting to Attach: cd648619-840a-4fdb-8287-bc6512f9df23, 15
INFO 2011-11-23 05:06:52 – cd648619-840a-4fdb-8287-bc6512f9df23: New Added with qty 15
INFO 2011-11-23 05:06:52 – Current Number of Records: 1
INFO 2011-11-23 05:06:52 – New Request Started
INFO 2011-11-23 05:06:52 – =========================================
INFO 2011-11-23 05:06:52 – Current Number of Records: 0
INFO 2011-11-23 05:06:52 – *******
INFO 2011-11-23 05:06:52 – Starting to Attach: 40676f9a-3e4d-4cb3-b5b0-c9715542e07c, 2
INFO 2011-11-23 05:06:52 – 40676f9a-3e4d-4cb3-b5b0-c9715542e07c: New Added with qty 2
INFO 2011-11-23 05:06:52 – Current Number of Records: 1
INFO 2011-11-23 05:06:53 – New Request Started
INFO 2011-11-23 05:06:53 – New Request Started
Редактировать 2: последний поиск
Это кажется проблемой из-за асинхронной природы JqGrid saveRow. Большую часть времени каждый запрос получает коллекцию по умолчанию с нулевым количеством и добавляет запись, сохраняя в сеансе. Если есть некоторая задержка в миллисекундах, немногие добавляются в сеанс.
Я все еще проверяю то же самое. Если это действительно так, я создам одну функцию JQuery Ajax Post для одновременной отправки всех выбранных значений.