带有jqGrid错误消息的警报

带有jqGrid错误消息的警报,jqgrid,alert,jsonreader,Jqgrid,Alert,Jsonreader,我希望在加载jqGrid表时出现错误时收到警报。例如,当jsonReader配置不好时,例如repeatitems为true而不是false时,您可以在Firebug中看到错误: ccur is undefined [Break On This Error] idr = ccur[idn] || idr; 如何在警报中放置此类错误?我已经尝试过使用loadError,但它不起作用,因为它甚至没有被触发。在我看来,您应该只使用try-catch块覆盖jqGrid代码: try { //

我希望在加载jqGrid表时出现错误时收到警报。例如,当jsonReader配置不好时,例如repeatitems为true而不是false时,您可以在Firebug中看到错误:

ccur is undefined
[Break On This Error] idr = ccur[idn] || idr; 

如何在警报中放置此类错误?我已经尝试过使用
loadError
,但它不起作用,因为它甚至没有被触发。

在我看来,您应该只使用
try-catch
块覆盖jqGrid代码:

try {
    // create the grid
    $("#list").jqGrid({
        // all jqGrid options
    });
} catch (err) {
    // display the error message which you want
    alert(err);
}
更新:您是对的,
尝试{…}catch(err){…}
,我之前在IE中描述过,它只用于读取本地数据。从服务器获取数据时,异常发生在
$.ajax的
成功
回调内部。确切地说,它发生在
addJSONData
addXmlData
内部,具体取决于您使用的数据类型。要捕获异常,您应该在中修改jqGrid的代码。修改后的代码可以是关于以下内容的

success:function(data,st, xhr) {
    if ($.isFunction(ts.p.beforeProcessing)) {
            ts.p.beforeProcessing.call(ts, data, st, xhr);
    }
    try {
        if(dt === "xml") { addXmlData(data,ts.grid.bDiv,rcnt,npage>1,adjust); }
        else { addJSONData(data,ts.grid.bDiv,rcnt,npage>1,adjust); }
        if(lc) { lc.call(ts,data); }
        if (pvis) { ts.grid.populateVisible(); }
    } catch (err) {
        alert(err);
    }
    if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
    data=null;
    if (npage === 1) { endReq(); }
}
我在jquery.jqGrid.src.js的相应修改版本中进行了测试,该版本显示错误消息。我没有准确地再现您描述的错误,因此错误消息与您的情况稍有不同

如果您需要修改后的jquery.jqGrid.src.js文件的最小化版本,您可以使用任何JavaScript最小化工具自己生成它。例如,可以免费下载和安装。用法为

ajaxmin.exe jquery.jqGrid.src.js -out jquery.jqGrid.min.js
将生成jquery.jqGrid.src.js的新最小化版本,该版本甚至比原来的jquery.jqGrid.min.js更小


另一个很好的最小化是在线提供的。您应该只使用“简单”优化。

我已经尝试过了,但没有成功。有人告诉我这是因为jqgrid代码已经有了一个很大的尝试,所以我没有机会做我想做的事情。但我不确定这一点,这就是为什么我发布了这个问题。