【问题标题】:Are there row id conflicts when using multiple grids (jqGrid) on the same page?在同一页面上使用多个网格 (jqGrid) 时是否存在行 ID 冲突?
【发布时间】:2013-03-25 14:34:50
【问题描述】:

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

【问题讨论】:

    标签: html jqgrid


    【解决方案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 在服务器上工作。

    【讨论】:

    • 感谢奥列格!这正是我所需要的!唯一的问题是我们使用的是 3.6,看起来 idPrefix 直到 4.2 才引入:/ 如果这成为问题,至少我知道有一个相当简单的修复。
    • @CEN7272:不客气!我对多个网格有同样的问题。所以我建议(见here)介绍idPrefix。 jqGrid 3.6现在的用法几乎和用蜡烛代替电灯一样。 4年的网络开发真的很多。 14 年前推出 HTML 4.01,21 年前推出第一个 Web 浏览器 Mosaic。在当前世界中,您应该更频繁地更新到新版本。 :-)
    • 哈哈,如果这是我的决定,我会在不久前升级 :) 也许这就是迫使我们前进的功能类型。我认为我团队中的人已经对网格功能进行了变通,但多年来并未意识到更新的程度。
    【解决方案2】:

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

    如果网格使用该 ID 进行任何类型的操作,它可能会失败。如果没有,即使 HTML 无法验证,它也可能运行良好。

    【讨论】:

    • 这是一个很好的观点......也许它并没有真正使用id。我只使用 jqGrid 的时间很短,所以我还在学习它是如何工作的。
    【解决方案3】:

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

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

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

    【讨论】:

    • 谢谢。我们是否能够像 Oleg 建议的那样使用 idPrefix,我需要仔细研究一下。我合作的团队已经使用 jqGrid 有一段时间了,所以因为我不必从头开始,所以我肯定有一些知识空白。
    猜你喜欢
    • 2012-12-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多