Я использую JqGrid в режиме множественного выбора и восстановлю выбор пользователя. JqGrid определяется следующим образом:
$("#StatusList").jqGrid({
url: '@Url.Action("UpdateStatusList", "Inventory")',
datatype: 'json',
mtype: 'GET',
colNames: ['Status', 'statusId'],
colModel: [
{ name: 'Status', index: 'Status', align: 'left', sortable: false },
{ name: 'statusId', index: 'statusId', hidden: true}]
});
У меня нет проблем со всеми коммуникациями между сервером и клиентом. Все отлично работает Но я чувствую, что дублирую данные при заполнении JqGrid этой функцией, которая отправляет данные JSON:
public ActionResult UpdateStatusList()
{
var jsonData = new
{
rows = (from status in DatabaseInMemory.WoodStatus.GetEntities()
select new
{
i = status.ID,
cell = new string[] { status.Name,
status.ID.ToString() }
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
Как видите, идентификатор передается два раза:
- для идентификатора JSON.
- для скрытого столбца, который помогает мне восстановить идентификатор из сетки.
Возвращаясь к клиенту, идентификатор JSON не хранится в свойстве selarrrow. Это свойство содержит идентификаторы в зависимости от положения в сетке. Я использую его, чтобы получить выбранные данные и восстановить реальные идентификаторы.
JqGrid обрабатывает и хранит идентификатор, переданный через данные JSON, или он потерян, и для отслеживания строк всегда необходим скрытый столбец?