我可以在jqGrid中更改新添加的行的ID吗?
我正在使用带有inlineNav
以便用户可以在本地编辑/添加/删除行,然后在完成后将所有更改提交给服务器。 我希望能够在本地向网格添加多个新行,但由于其他要求,我需要新添加的行具有唯一ID而不是默认的new_row
。 此外,由于外键约束,我无法使用ajax调用在添加时立即保留新行。 我尝试了以下内容,但ID值不会改变:
$("#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
的addRowParams
中无法正常工作。 我发现使用jqGrid的afterInsertRow
事件有效:
afterInsertRow: function (rowid, rowdata, rowelem) { if (rowid == 'new_row') { var newRowIndex = $("#newRowIndex").val(); if(!newRowIndex) newRowIndex = 1; var newRowId = rowid + "_" + newRowIndex; $("#new_row").attr('id', newRowId); newRowIndex++; $("#newRowIndex").val(newRowIndex); } }
要设置新行的id,请使用:
$("#new_row").attr('id',newId);
引用这个问题: 我可以在不重新加载的情况下更改JQGrid中行的主ID吗?