我有一个jqGrid,我正在做的形式编辑。获取值低于值的选项。
$("#usergrid").jqGrid('navGrid',"#usergridpager",{add:true,edit:true,del:false,search:false,refresh:true},{},{},{}}如果在DB中添加数据时发生了什么错误,我想要一些错误消息。我试过
// 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
}
},{}我正在尝试插入现有的数据(主键冲突),以便我可以测试上述方法,但不显示任何消息。但是服务器控制台正在获得正确的失败日志。相反,在弹出窗口的顶部,我得到了
"error Status: 'Internal Server Error'. Error code: 500"
如何自定义这些消息并以小用户友好的形式显示它们。
更新-属性中的值在我的java代码中用一个Spring的控制器映射,它实际上正在执行所有的插入/更新。
发布于 2014-04-08 11:17:08
如果在表单编辑结束时收到成功的响应,将调用回调。如果保存数据的HTTP请求失败,则将处理errorTextFormat回调。
另外,建议在服务器代码中使用异常句柄。它主要允许产生更易读的错误,如“内部服务器错误。错误代码: 500”。通常,数据库操作期间的异常包含更多信息。我们可以捕获这样的异常并将一个可读的错误返回给客户端。
您应该更改afterSubmit的代码,以便区分成功的保存和不成功的保存。当前代码总是返回return [false, ...],这样jqGrid就不会停止编辑。
发布于 2014-04-08 12:29:12
如果您想用正确的消息在UI中显示服务器错误,那么我们不需要在java代码中处理任何类型的过度。就让它进入UI吧。编写如下代码
{closeAfterAdd:true, closeOnEscape:true, url: "adddata.html",recreateForm:true,
beforeShowForm: function(form) {
$('#tr_userId', form).show();
},errorTextFormat : function(data){
if (data.status == 500)
return data.responseText; //Little HTML parsing you'll have to do
}// add options
}https://stackoverflow.com/questions/22935056
复制相似问题