我有一个jqgrid视图,并添加了使用jqGrid接口插入新行的选项。在添加时,我有一些服务器端验证,如果没有错误,那么它将被更新,否则弹出窗口应该是可用的错误消息。如果验证错误,我的弹出文件可用,但输入文本在插入表单中清除。代码段:
$("#tblJQGrid").jqGrid(
{
//grid details
}
).navGrid('#tblJQGrid_toppager',
{
edit: false, add: true, del: false, search: true, refresh: true,
},
{
// edit options
},
{
// add options
url: "insert/something",
closeAfterAdd: true,
reloadAfterSubmit: true,
afterComplete: function (response) {
if (response.responseText) {
if (response.responseText == " updated successfully") {
$(".ui-icon-close").trigger('click');
alert(response.responseText);
}
else {
alert(response.responseText);
}
}
}
},
{
// delete options
},
{ recreateFilter: true, overlay: true, multipleSearch: true, multipleGroup: true }
);
答案 0 :(得分:1)
在所有问题的文本中写一下是非常重要的,特别是如果你报告错误,jqGrid的哪个版本以及从哪个fork(free jqGrid,Guriddo jqGrid JS或旧的jqGrid中版本< = 4.7)你使用。
表单编辑期间服务器验证的标准方式意味着服务器在编辑响应正文中报告带有错误描述的文本或HTML片段,响应的状态代码是HTTP错误( > = 400)。只有当您的服务器端代码无法设置HTTP状态代码时,您才应使用afterSubmit
(非afterComplete
)回调来分析服务器响应并通知jqGrid响应是否包含错误报告。在成功编辑/添加操作的情况下,回调afterSubmit
必须返回[true]
(具有true
的数组作为第一个元素)。它应该以{{1}}的形式返回数组,以防出现错误。 [false, "some string with the error description"]
的调用时间太晚,无法用于验证。