jqGrid 插件 - 没有自动行 ID?

use*_*803 2 row increment jqgrid identifier

我使用 jqGrid javascript 插件。我使用 datatype:json,一切正常,除了我不希望 jqGrid 为我的行提供 ID 之外。

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

Ole*_*leg 5

网格的每一行数据都必须有 id属性。在jqGrid的很多回调中都会用到它。所以我建议你分配一些值。如果您从服务器获取数据,则数据通常会从数据库的某个具有唯一 ID 的表中获取。在这种情况下,我建议您使用该值作为 id。如果您将来决定实现该功能,它将简化数据编辑的实现。

要在客户端分配唯一的idPrefixid 值,我可以建议您两种方法:1)使用2)使用为客户端服务器返回的每个项目beforeProcessing分配唯一属性。id

第一种方法非常简单。rowid 将从idPrefix网格的选项值和输入数据的 id 或 jqGrid 生成的 1,2,3,... 值(如果在输入数据中找不到 id)构建。例如,您可以用于idPrefix: "a"第一个网格和idPrefix: "b"第二个网格。在这种情况下,第一个网格的 id 将为"a1", "a2", "a3", ... 而第二个网格的 id 将为"b1", "b2", "b3", ...

如果使用第二种方法,您需要实现beforeProcessing回调,该回调将在获取服务器响应后、jqGrid 处理数据之前由 jqGrid 调用。因此您将能够预处理数据。例如,您可以对数据项进行循环,并id为每个项目分配属性$.jgrid.randId()。该方法$.jgrid.randId()将生成唯一的 id 值。这样你就不会再有重复的 id 了。