【问题标题】:Display nice error message when there is something wrong after ajax request jqgridajax请求jqgrid后出现错误时显示漂亮的错误消息
【发布时间】:2010-05-17 12:59:48
【问题描述】:

我用这个函数删除行:

function deleteRow(){
 rows = jQuery("#category_grid").getGridParam('selarrrow');
 if( rows.length>0){
  jQuery('#category_grid').delGridRow(rows,{
   msg:'Verwijderen geselecteerde rijen?'   
  });
 }else{
  alert("Selecteer eerst een rij om te verwijderen!"); 
 }
}

但是当它在我的 php 中失败时,服务器端会抛出异常。错误消息看起来不太好。如何在对话框中显示错误文本?还是在 ajax 调用后捕获错误消息?

目前错误消息如下所示:错误状态:'CDbException'。错误代码:500

当我用谷歌搜索时,我发现了一个名为 errorTextFormat 的 delGridRow 函数事件。这是我要找的活动吗?有人可以给我一个这个事件的实现例子吗?

问候

尼尔斯

【问题讨论】:

    标签: jqgrid callback


    【解决方案1】:

    delGridRow的第二个参数是一个带选项的对象,你可以这样做

    jQuery('#category_grid').delGridRow(rows,{
        errorTextFormat: function (data) {
            if (data.responseText.substr(0, 6) == "<html ") {
                return jQuery(data.responseText).html();
            }
            else {
                return data.responseText;
                // or
                // return "Status: '" + data.statusText + "'. Error code: " +data.status;
            }
        }
    });
    

    您通过errorTextFormat 函数返回的文本retText 将放置在与jQuery.html(retText) 函数内的jQuery.html(retText) 代码相关的错误消息的相应div 中。

    顺便说一句,我不直接调用delGridRow 函数。如果我将导航栏添加到关于navGrid 函数的jqGrid,而不是那样,我将我的errorTextFormat 函数作为参数提供给标准“删除按钮”。确切地说,我是针对$.jgrid.del

    jQuery.extend(jQuery.jgrid.del, {
        ajaxDelOptions: { contentType: "application/json" },
        mtype: "DELETE",
        reloadAfterSubmit: false,
        jqModal: false,
        serializeDelData: function (postdata) {
            return "";
        },
        errorTextFormat: function (data) {
            if (data.responseText.substr(0, 6) == "<html ") {
                return jQuery(data.responseText).html();
            }
            else {
                return "Status: '" + data.statusText + "'. Error code: " + data.status;
            }
        }
    });
    

    (我的errorTextFormat的真实代码看起来有点复杂,但是使用思路是一样的)。

    【讨论】:

    • 谢谢奥列格,我用这个关于“errorTextFormat”的答案解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多