我想在加载jqGrid表时发生错误时收到提醒。例如,当jsonReader配置不正确时,例如当repeatitems为true而不是false时,U可以在Firebug中看到错误:
ccur is undefined
[Break On This Error] idr = ccur[idn] || idr;
如何在警报中放置此类错误?我已经尝试过使用loadError
,但它不起作用,因为它甚至没有触发。
答案 0 :(得分:3)
对我来说,你应该只使用try - catch
阻止jqGrid代码:
try {
// create the grid
$("#list").jqGrid({
// all jqGrid options
});
} catch (err) {
// display the error message which you want
alert(err);
}
更新:你是对的,我之前描述的try {...} catch (err) {...}
仅在阅读本地数据时在IE中工作。如果从服务器获取数据,则异常发生在success
$.ajax
的回调中。确切地说,它取决于您使用的数据类型,在addJSONData
或addXmlData
内。要捕获异常,您应该在the place中修改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(); }
}
我在the demo中测试了jquery.jqGrid.src.js的相应修改版本,它显示了错误消息。我没有准确地再现您描述的错误,因此错误消息在您的情况下是另一个。
如果您需要修改后的jquery.jqGrid.src.js文件的最小化版本,您可以使用任何JavaScript最小化器自行生成它。例如,Microsoft Ajax Minifier可以免费下载和安装。用法为
ajaxmin.exe jquery.jqGrid.src.js -out jquery.jqGrid.min.js
将生成jquery.jqGrid.src.js的新的最小化版本,它将比原始的jquery.jqGrid.min.js更小。
另一个优秀的最小化器可在线获取here。您应该只使用“简单”优化。