3
我使用jqGrid和inlineNav
,以便用戶可以在本地編輯/添加/刪除行,然後在完成後將所有更改提交到服務器。我希望能夠在本地添加多個新行到網格,但由於其他要求,我需要新添加的行具有唯一的ID而不是默認的new_row
。此外,由於外鍵約束,我無法使用ajax調用立即在添加時保留新行。我已經嘗試以下,但ID值不會改變:我可以更改jqGrid中新添加的行的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
,遞增爲每個新添加的行索引。這是可能的,如果是的話,如何?
解決方案
除了院長的回答,我發現它不工作在addRowParams
的oneditfunc
這樣做。我發現,使用的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後,它不允許我立即編輯。我正在使用內聯添加。 – Marvzz