带有重复列的Jqgrid选择问题
我在Jqgrid中遇到了行选择问题。 我在网格中有重复的行。 每当我选择副本或它选择该重复行的第一个记录。
对于许多开始使用jqGrid的人来说,这是常见的问题。 如果使用具有id重复项的行填充网格,则存在这种奇怪的选择行为。 因此,了解jqGrid如何使用输入中的id非常重要 。
jqGrid使用内部HTML标记来显示网格。 对于任何网格,它使用
,
(表的主体 – 没有列标题),
(表的行)和
(表的表)。 例如,下面的HTML片段可以代表您的网格
16 A11 Add 1 Chart Edit 1 Chart Delete 1 Chart View 15 Manage Edit 16 A11 View 15 Manage Delete
jqGrid的设计使得人们可以快速访问网格的任何一行 。 要实现快速访问,需要为每个
(表行)分配唯一的ID 。 您将在jqGrid使用的大多数方法或事件中找到rowid参数。 行的id应标识表的行集中的行。 在这种情况下,网格将如下所示
16 A11 Add 1 Chart Edit 1 Chart Delete 1 Chart View 15 Manage Edit 16 A11 View 15 Manage Delete
根据HTML规范,任何HTML元素的id 在页面上必须是唯一的 。 例如,如果您确实为这些行指定了重复的ID
16 A11 Add 1 Chart Edit 1 Chart Delete 1 Chart View 15 Manage Edit 16 A11 View 15 Manage Delete
该表仍然可以在大多数Web浏览器中显示,但使用网格可能确实存在问题。 例如,如果你选择这样的网格的最后一行,相应的jqGrid代码将找出15作为当前行的id,它将使用$("#15").addClass("ui-state-highlight")
来突出显示当前行。 而不是代码将选择(将类“ui-state-highlight”)仅添加到具有id =“15” 的第一行 。
因此,如果填充用作jqGrid输入的JSON数据,则应该非常小心。 例如,以下数据可以表示网格包含:
{ "total": 1, "page": 1, "records": 7, "rows": [ { "id": "16", "cell": ["16", "A11", "Add"] }, { "id": "1", "cell": ["1", "Chart", "Add"] }, { "id": "1", "cell": ["1", "Chart", "Delete"] }, { "id": "1", "cell": ["1", "Chart", "View"] }, { "id": "15", "cell": ["15", "Manage", "Delete"] }, { "id": "16", "cell": ["16", "A11", "View"] }, { "id": "15", "cell": ["15", "Manage", "Edit"] } ] }
JSON数据可以修复
{ "total": 1, "page": 1, "records": 7, "rows": [ { "id": "1", "cell": ["16", "A11", "Add"] }, { "id": "2", "cell": ["1", "Chart", "Add"] }, { "id": "3", "cell": ["1", "Chart", "Delete"] }, { "id": "4", "cell": ["1", "Chart", "View"] }, { "id": "5", "cell": ["15", "Manage", "Delete"] }, { "id": "6", "cell": ["16", "A11", "View"] }, { "id": "7", "cell": ["15", "Manage", "Edit"] } ] }
或者
{ "total": 1, "page": 1, "records": 7, "rows": [ { "id": "16_Add", "cell": ["16", "A11", "Add"] }, { "id": "1_Add", "cell": ["1", "Chart", "Add"] }, { "id": "1_Delete", "cell": ["1", "Chart", "Delete"] }, { "id": "1_View", "cell": ["1", "Chart", "View"] }, { "id": "15_Delete", "cell": ["15", "Manage", "Delete"] }, { "id": "16_View", "cell": ["16", "A11", "View"] }, { "id": "15_Edit", "cell": ["15", "Manage", "Edit"] } ] }
例如。 然后世界(包括网格)将变得可以。