【发布时间】:2011-08-18 13:09:55
【问题描述】:
我在多选模式下使用 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 没有保存在 selrrrow 属性中。此属性根据网格中的位置保存 id。我正在使用它来获取选定的数据,并恢复真实的 id。
JqGrid 是处理并保存通过 JSON 数据传递的 id,还是丢失并且总是需要隐藏列来跟踪行?
【问题讨论】:
标签: c# javascript json asp.net-mvc-3 jqgrid