在同一页面上使用多个网格(jqGrid)时是否存在行id冲突



我正在创建一个表单,它将显示基于XML数据的多个网格(4个标准网格和1个子网格)。到目前为止,在我所有的测试中,一切都工作正常。我已经能够使用getRowData、getGridParam等遍历网格,但是,在调试时,我注意到对于每个网格,行号都是从1开始的简单数字,似乎无法区分它们。这会产生任何冲突吗?如果不是,有人能解释一下为什么吗?我只是希望上线后能少出点意外。提前感谢!

可以使用jqGrid的idPrefix选项来解决这个问题。例如,如果您有两个网格的页面,您可以使用idPrefix: "g1_"为第一个网格和idPrefix: "g2_"为第二个网格。如果两个网格的id都是1,2,3,…在没有idPrefix选项的情况下使用,那么具有idPrefix: "g1_"的网格的id将是"g1_1","g1_2","g1_3",…idPrefix: "g2_"的网格id分别为"g2_1"、"g2_2"、"g2_3"、…这样就不会有更多的id重复了。

如果从服务器下载数据,选项idPrefix特别实用。选项idPrefix仅更改local id。例如,如果修改行,前缀将从id值中删除,该值将发送到服务器。这样就可以在服务器上使用数据库表中的本地id。

我不知道你正在使用的网格,但我知道id应该是网站DOM结构内的唯一标识符。

  • HTML 4.0.1规范

  • HTML 5规范

如果网格将该id用于任何类型的操作,则可能会失败。如果没有,它可能工作得很好,即使HTML不会验证。

行id应该基于您从服务器返回的数据。请参阅此处的文档部分:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki retrieving_data

基本上,您有责任确保返回的XML使用唯一的id值。

最新更新