ASP.NET MVC / JqGrid: обрабатывается и восстанавливается ли JSON Id? - PullRequest
1 голос
/ 18 августа 2011

Я использую 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, или он потерян, и для отслеживания строк всегда необходим скрытый столбец?

1 Ответ

2 голосов
/ 18 августа 2011

Вы должны изменить i = status.ID на id = status.ID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...