如何把jqGrid序号作为行id来选择行
问题背景
jqGrid默认会将返回数据中的id
字段值作为该行的id,当返回数据id存在重复(非规范数据,但有可能不可避免),则会导致操作jqGrid行的时候出现选择错误——因为jqGrid的行选择是根据行id进行的。所以想让jqGrid的行id为唯一值,那么可以采用自动填充序号的方式。
学习材料
这是网上找来的关于jqGrid相对完善一些的文档,http://blog.mn886.net/jqGrid/
实现本功能需要了解JqGrid的两个属性:jsonReader
、rownumbers
。
jsonReader
需要定义jsonReader来跟服务器端返回的数据做对应,其默认映射关系如下:
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: true,
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {root:"rows",
repeatitems: true,
cell:"cell"
}
rownumbers
默认参数值为:rn
。如果为ture则会在表格左边新增一列,显示行顺序号,从1开始递增。此列名为’rn’;
功能示例
修改jqGrid的jsonReader
属性中的id
属性的映射字段为rn
,即可实现序号作为该行的id的值。