ASP.. NET MVC / JqGrid:是处理和可恢复的JSON Id

ASP.NET MVC / JqGrid : Is the JSON Id processed and recoverable?

本文关键字:可恢复 JSON Id 处理 MVC NET JqGrid ASP      更新时间:2023-09-26

我在多选模式下使用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}]
});

对于服务器和客户端之间的所有通信,我没有任何问题。一切正常。但是我觉得我在用发送JSON数据的函数填充JqGrid时复制了数据:

  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);
  }

可以看到id被传递了两次:-为JSON Id。-用于帮助我从网格中恢复id的隐藏列。

回到客户端,JSON Id没有保存在selarrow属性中。此属性根据网格中的位置保存id。我用它来获取选定的数据,并恢复真实的id。

是JqGrid处理并保存通过JSON数据传递的id,还是它丢失并且总是需要一个隐藏列来跟踪行?

您应该将i = status.ID改为id = status.ID