我有一个 jqGrid,我正在其中进行表单编辑。 获取具有以下值的选项。
$("#usergrid").jqGrid('navGrid',"#usergridpager",{add:true,edit:true,del:false,search:false,refresh:true},{},{},{}}
如果在将数据添加到数据库时发生任何错误,我想要一些错误消息。我尝试过
// add options
{closeAfterAdd:true,
closeOnEscape:true,
url: "adddata.html",
recreateForm:true,
afterSubmit : function(response, postdata) {
return [false, response.responseText, ""];
// Tried with return [true, response.responseText, ""]; and few more
}
},{}
我正在尝试插入现有数据(主键冲突),以便我可以测试上述方法,但不会显示任何消息。但服务器控制台正在获取正确的失败日志。相反,在弹出窗口的顶部,我得到 p>
"error Status: 'Internal Server Error'. Error code: 500"
如何自定义这些消息并以用户友好的形式显示它们。
更新 - URL 属性中的值映射到我的 java 代码中的一个 Spring MVC Controller ,该 Controller 实际上执行所有插入/更新操作。
最佳答案
如果在表单编辑结束时收到成功响应,则会调用回调afterSubmit
。如果保存数据的 HTTP 请求失败,则将处理 errorTextFormat
回调。
建议另外在服务器代码内使用异常句柄。它主要允许产生更易读的错误,如“内部服务器错误。错误代码:500”。通常,数据库操作期间的异常包含更多信息。我们可以捕获此类异常并向客户端返回一个可读的错误。
您应该更改afterSubmit
的代码,以便区分保存成功与不成功。当前代码总是返回 return [false, ...]
所以 jqGrid 永远不会结束编辑。
关于jquery - 如何在进行表单编辑时使用 jqGrid 的 afterSubmit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935056/