当另一行进入编辑模式时,处于编辑模式的行上的jqgrid saveRow将失败
我正在使用jqGrid中的行编辑功能进行内联编辑,然后将数据保存在网格中,即使用clientArray作为url。我正在使用onsetrow函数将select行置于编辑模式 当通过“保存”按钮保存行时,此逻辑工作正常,但当在第一行仍处于编辑模式时单击另一行时,为第一行调用saveRow函数不会保存更改,并且行字段将恢复为其先前的值 我尝试过使用beforeSelectRow函数和不使用beforeSelectRow函数。如何在此上下文中正确保存行更改 逻辑如下:当另一行进入编辑模式时,处于编辑模式的行上的jqgrid saveRow将失败,jqgrid,Jqgrid,我正在使用jqGrid中的行编辑功能进行内联编辑,然后将数据保存在网格中,即使用clientArray作为url。我正在使用onsetrow函数将select行置于编辑模式 当通过“保存”按钮保存行时,此逻辑工作正常,但当在第一行仍处于编辑模式时单击另一行时,为第一行调用saveRow函数不会保存更改,并且行字段将恢复为其先前的值 我尝试过使用beforeSelectRow函数和不使用beforeSelectRow函数。如何在此上下文中正确保存行更改 逻辑如下: var iRow; ...
var iRow;
...
beforeSelectRow: function (id, e) {
if (id != null) {
if (iRow != null && iRow != id) {
SaveRow();
}
}
return true;
},
onSelectRow: function (id, status, e) {
if (id != null) {
if (iRow != null && iRow != id) {
SaveRow();
}
if (iRow == null) {
iRow = id;
$("#GridMain").jqGrid("editRow", id, false);
$("#RowPanel").show();
}
}
}
function SaveRow() {
// Save the current row if it was being edited
if (iRow != null) {
$("#GridMain").jqGrid("saveRow", iRow, { url: "clientArray" });
$("#RowPanel").hide();
iRow = null;
}
}
您应该检查以下几项: 检查iRow是否正确。如果调用SaveRow时需要保存的行仍然是可编辑的,则应该能够通过调用以下命令来获取行id,而无需保留全局变量: iRow=$'tr[aria selected=true],$GridMain.attr'id';//你有正确的身份证吗 如果您使用客户端排序,请检查是否至少有一个列设置为列模型上的键。例如,如果您有一个隐藏的Id列,则应如下设置: {name:'Id',index:'Id',label:'Id',可编辑:false,hidden:true,key:true} 另外,从我在代码中看到的情况来看,您正在使用RowPanel行编辑值?如果是这样,则可能需要在保存时将编辑的值发送回网格。否则,在编辑和保存时不需要显示和隐藏任何内容 希望这有帮助