jquery - 如何在进行表单编辑时使用 jqGrid 的 afterSubmit

标签 jquery jqgrid

我有一个 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
     } 
  },{}

我正在尝试插入现有数据(主键冲突),以便我可以测试上述方法,但不会显示任何消息。但服务器控制台正在获取正确的失败日志。相反,在弹出窗口的顶部,我得到

"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/

相关文章:

jquery - 使用 jQuery 更改背景颜色

JQGrid,需要更改进度消息 "Loading..."

jquery - 无法获取 'page'参数

javascript - 带提交按钮的 Jqgrid 信息对话框

javascript - 多个复选框 - 更改消息 "Please check this box if you want to proceed"

javascript - 不使用原生 XMLHttpRequest 的原因 - 为什么 $.ajax 是强制性的?

javascript - 在 for 循环中使用 setTimeout

php - Jquery Slider 有时会出现在奇怪的位置

css - 如何为 jqGrid 中的每个单元格分配一个唯一的 CSS id?

jquery - Jqgrid - 未捕获的 RangeError : Maximum call stack size exceeded