我正在使用带有inlineNav
的jqGrid,以便用户可以在本地编辑/添加/删除行,然后在完成后将所有更改提交给服务器。我希望能够在本地向网格添加多个新行,但由于其他要求,我需要新添加的行具有唯一ID而不是默认new_row
。此外,由于外键约束,我无法使用ajax调用在添加时立即保留新行。我尝试过以下操作,但ID值不会改变:
<input type="hidden" id="newRowIndex" />
$("#thisGrid").jqGrid('inlineNav', '#thisGridPager', {
edit: false,
addtext: "Add",
save: false,
cancel: false,
addParams: {
position: 'last',
addRowParams: {
keys: true,
oneditfunc: function (rowid) {
var newRowIndex = $("#newRowIndex").val();
if (!newRowIndex)
newRowIndex = 1;
$("#thisGrid").jqGrid('setCell', rowid, 'id', rowid + "_" + newRowIndex, '', '');
newRowIndex++;
$("#newRowIndex").val(newRowIndex);
}
}
}
});
我只想将新添加的行ID设置为new_row_1
,为每个新添加的行递增索引。这是可能的,如果是的话,怎么样?
解决方案
除了Dean的回答之外,我发现它在oneditfunc
的{{1}}中无效。我发现使用jqGrid的afterInsertRow
事件有效:
addRowParams
答案 0 :(得分:3)
要设置新行的id,请使用:
$("#new_row").attr('id',newId);
引用此问题:Can I change the primary ID of a row in JQGrid without reloading?