在jqGrid子网格中获取自定义rowId

时间:2012-10-22 11:03:00

标签: jquery mysql spring jqgrid

当我尝试展开一行父表以显示子网格时,正在传递的ID由javascript生成。因此,父表的第一行获取的rowid为1,第二行的rowid为2.因此,当我单击以展开每个子网格的子网格时,被调用的URL为myurl.html?q=1myurl.html?q=2 。我正在使用查询的q=?部分来获取子网格的行。

然而,问题是我的父行存储在具有唯一id的数据库中,而不是1 2 3 etc.它是Mysql自动生成的id。

问题

如何更改parentGrid或subGrid的行为,以便在展开subgrid时,而不是自动生成1, 2, 3, etc.,我将获得父行的实际ID,因为它在DB中。

1 个答案:

答案 0 :(得分:1)

您写过“自动生成1,2,3等”。它表明您以不正确的方式填充网格。从服务器返回的数据应包含id,用作行id的{​​{1}}并经常命名为rowid。只有当jqGrid在输入数据中没有找到有关rowid的任何信息时,默认情况下才会使用值1,2,3等。

如果您从数据库中获取网格行的 native ID,则此类行为不仅很糟糕。更糟糕的是,如果您在页面上有更多的网格,或者如果您有带子网格的网格,则可以接收id重复项。

所以你应该遵循两条规则:

  1. 当id存在时,从数据库返回包含本机ID的数据。
  2. 如果您使用子网格,或者如果您在网页上有更多网格,请使用<tr>
  3. 我建议您阅读the answerthis oneAnother answer对你来说也很有趣。