【发布时间】:2010-04-27 09:37:23
【问题描述】:
我使用 jqGrid 作为客户端网格输入,允许用户在一次 POST 所有数据之前输入多条记录。
我遇到了一个问题,如果用户添加了一些记录(比如 3 ),则记录的 ID 将为 1、2、3。如果用户删除了记录 2,那么记录的 id 就剩下 1 和 3。
当用户现在添加新记录时,jqGrid 再次分配该记录 id 3,因为它似乎只是计算总记录并将新记录加一。这会导致选择行时出现问题,因为现在行 ID 为 1、3 和 3。
有谁知道如何访问记录的行 ID,因为我可能会使用 afterSubmit 事件并重新分配从 1 增加的行 ID。(所以在我删除行 ID 2 后,这会将另一个行 ID 设置为 1 和2)
还有其他解决这个问题的建议吗?
谢谢
编辑 我已经使用删除 navGrid 按钮的以下代码解决了这个问题
}).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
);
基本上只是保存网格数据,然后重新添加它,以便 rowid 再次连续。
由于某种原因,它会导致左侧下方的行号从 2 而不是 1 开始。 编辑此问题已通过使用 GitHub 中的最新 jqGrid 代码(2010 年 4 月 27 日)解决。但我发现当您尝试编辑该行时,该版本的 jquery.fmatter.js 导致空单元格显示“ ”,因此我不得不将该文件恢复为 jqGrid 3.6.4 中的文件。
【问题讨论】:
标签: javascript jquery jqgrid