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