jqGrid插件 - 没有自动行ID?

时间:2014-10-03 11:48:36

标签: jqgrid row increment identifier

我使用jqGrid javascript插件。 我使用数据类型:json,一切正常,除了我不希望jqGrid为我的行提供ID。

我根本不想设置ID,如果我不设置它们,jqGrid会自动为行提供ID:1,2,3 ..(自动增量数字)。这是一个问题,因为我创建了一些网格,然后我多次使用相同的ID。 虽然到目前为止我没有遇到任何问题,但我不希望我的文档无效。有没有办法禁用jqGrid自动行ID?

1 个答案:

答案 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值。所以你不会再有更多的内容了。