我使用jqGrid javascript插件。 我使用数据类型:json,一切正常,除了我不希望jqGrid为我的行提供ID。
我根本不想设置ID,如果我不设置它们,jqGrid会自动为行提供ID:1,2,3 ..(自动增量数字)。这是一个问题,因为我创建了一些网格,然后我多次使用相同的ID。 虽然到目前为止我没有遇到任何问题,但我不希望我的文档无效。有没有办法禁用jqGrid自动行ID?
答案 0 :(得分:4)
网格的每一行数据必须具有 id
attribure。它将用于jqGrid的许多回调中。所以我建议你分配一些价值。如果从服务器获取数据,则数据通常来自具有唯一ID的数据库的某个表。在这种情况下,我建议您使用该值作为ID。它将简化您将决定在未来实现该功能的数据编辑的实现。
要在客户端分配唯一 ID值,我可以向您推荐两种方法:1)使用idPrefix
2)使用beforeProcessing
来分配唯一{{1从客户端的服务器返回的每个项目的属性。
第一种方法非常简单。如果输入数据中没有找到id,则将根据网格的id
选项的值和输入数据的id或jqGrid生成的1,2,3,...值构造rowid。例如,您可以将idPrefix
用于第一个网格,将idPrefix: "a"
用于第二个网格。如果第一个网格的ID为idPrefix: "b"
,"a1"
,"a2"
,则......第二个网格的ID将为"a3"
,"b1"
,"b2"
,...
如果使用第二种方法,您需要实现"b3"
回调,该回调将在服务器响应获取后由jqGrid调用,但在jqGrid处理数据之前。因此,您将能够预处理数据。例如,您可以对数据项进行循环,并为beforeProcessing
的每个项目分配id
属性。方法$.jgrid.randId()
将生成唯一的id值。所以你不会再有更多的内容了。