1
jqGrid編輯後的行標識需要在保存後返回ID作爲響應後刷新。 我嘗試了下面的代碼,但未定義的消息框出現。如何通過格式化程序保存按鈕保存按鈕後更新jqgrid行標識
如何更新行ID? 如何通過保存操作按鈕更新行後的響應文本?
安德魯斯
grid.jqGrid({
colModel: [{name:_actions,width:45,
formatter:"actions",
formatoptions:
{keys:true,
delbutton:false,
onSuccess:function (rowID, response) {
alert(response);
$("#" + rowID).attr("id", response.responseText);
},
onEdit: function (rowID) {
if (typeof (lastSelectedRow) !== 'undefined' && rowID !== lastSelectedRow)
cancelEditing($('#grid'));
lastSelectedRow = rowID;
}
}}
主要問題是操作按鈕沒有單個事件,其中舊的rowid和響應文本都在內聯編輯aftersavefunc中傳遞。我通過在'onSuccess = function(jqXHR){actionRessect = jqXHR; 返回true; }「'和'afterSave =功能(ROWID){ aftersavefunc(ROWID,ActionResponse的)}'用這個。Db的方案使用自然主鍵ID和部署到成千上萬的網站。改變這甚至造成重複的替代ID作爲你推薦工作量太大,因爲需要重寫許多生產應用程序 – Andrus
@安德魯斯:好的,我知道如果安裝了許多舊版本的軟件,更新方案可能會很複雜,但我沒有想到這個問題。我建議你不改變現有表的主鍵。我建議增加一個額外的** **在表列中自動增量值可以保存。在此之後,你可以把唯一約束或一個索引的列有快速搜索來自列的值並**僅將值作爲id用於jqGrid **。在其他應用程序中,您可以繼續使用舊的主鍵。可以工作 – Oleg
@安德魯斯:你應該小心地把'jqXHR'保存在某個地方。您應該編寫代碼,以便指針在未使用時分配給「null」。如果你不這樣做,你可能有記憶韭菜,因爲'jqXHR'的內存不能被釋放。 – Oleg