jgGrid在工具栏中包含内联添加按钮,并在操作列中保存操作按钮。 使用远程json数据。 如果按下保存操作按钮以终止内联添加和服务器返回错误, 添加的行将从网格中删除,输入的行数据将丢失。 我将restoreAfterError:false添加到formatoptions 如下面的代码所示内联添加按钮,但如果按下保存操作按钮,则忽略这些设置。
如何将行保持在内联添加模式,以便在按下保存操作按钮后可以在错误后继续编辑?
colModel: [ {
name:"_actions",
formatter:"actions",
formatoptions:{
editbutton:true,
keys:true,
// this is ignored if action column save button is pressed:
restoreAfterError:false,
delbutton:true
}
} , ...
],
editurl: '/Grid/Edit',
datatype: "json",
使用以下内容添加内联添加按钮
$grid.jqGrid('inlineNav', '#grid_toppager', {
addParams: {
position: "beforeSelected",
rowID: '_empty',
useDefValues: true,
addRowParams: {
keys: true,
// this is ignored if action column save button is pressed:
restoreAfterError: false,
}
},
editParams: {
keys: true,
// this is ignored if action column save button is pressed:
restoreAfterError: false,
},
add: true,
edit: false,
save: true,
cancel: true
});
答案 0 :(得分:3)
我测试了restoreAfterError: false
或addParams.addRowParams
内的设置editParams
,效果很好。如果出现错误,在我的自定义errorfunc
显示错误消息后,编辑(或新添加的行)将保持编辑模式。我想只有在使用formatter: 'actions'
时才会遇到问题。
如果您使用formatter: 'actions'
,则无法直接定义restoreAfterError
(至少在当前的jqGrid版本3.4.1中)。因此,我建议您将restoreAfterError
的默认值更改为false
:
$.extend($.jgrid.inlineEdit, {
restoreAfterError: false
});
此外,我建议您从restoreAfterError: false,}
或addRowParams
删除尾随逗号(例如editParams
})。许多(但不是全部)Web浏览器都会忽略尾随逗号,但仍然存在错误。