当ajax请求jqgrid后出现错误时,显示漂亮的错误消息

当ajax请求jqgrid后出现错误时,显示漂亮的错误消息,jqgrid,callback,Jqgrid,Callback,我使用此函数删除行: 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

我使用此函数删除行:

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调用后捕获错误消息

此时,错误消息看起来像:错误状态:“CDBEException”。错误代码:500

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

问候


niels

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
的真实代码看起来有点复杂,但用法是一样的)。

谢谢你,Oleg,我用这个关于“errorTextFormat”的答案解决了我的问题
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;
        }
    }
});