我使用jqgrid作为客户端网格输入,允许用户在一次发布所有数据之前输入多个记录。
我有一个问题,如果用户添加了一些记录(比如3),那么记录的ID将是1,2,3。如果用户删除了记录2,您只剩下1和3作为记录的ID。
当用户现在添加新记录时,jqgrid再次分配该记录ID 3,因为它似乎只是计算总记录数,并为新记录增加一个。这会导致在选择行时出现问题,因为现在行ID是1、3和3。
是否有人知道如何访问记录的行ID,因为我可能会使用AfterSubmit事件并重新分配行ID从1增加到1。(因此,删除行ID 2后,这会将另一行ID设置为1和2)
还有其他解决这个问题的建议吗?
谢谢
编辑
我用下面的“删除导航网格”按钮代码解决了这个问题
}).navGrid('#pager', {add:true, del:true, refresh:false, search:false},
{
...
}, ##edit parameters
{
...
}, ##add parameters
{reloadAfterSubmit:false,
clearAfterAdd:false,
afterComplete:
function () {
## clear and readd the row data so the row ids are sequential
var savedData= $("#inputgrid").jqGrid('getRowData');
$("#inputgrid").jqGrid('clearGridData');
$("#inputgrid").jqGrid('addRowData', 'rn', savedData);
}
} ##delete parameters
);
基本上只需保存网格数据,然后重新添加它,这样rowids就可以再次连续了。
由于某种原因,它会使左侧的行数从2开始,而不是从1开始。
编辑这是通过使用最新的jqgrid代码在Github(2010年4月27日)解决的。但我发现jquery.fmatter.js的版本在您试图编辑行时导致空单元格显示“”,所以我不得不将该文件还原回jqgrid 3.6.4中的文件。