我想在加載我的jqGrid表時發生錯誤時發出警報。例如,當jsonReader沒有得到很好的配置,當repeatitems是真的而不是假像,U可以在Firebug看到錯誤:警報與jqGrid錯誤消息
ccur is undefined
[Break On This Error] idr = ccur[idn] || idr;
我怎樣才能把這樣的錯誤警報?我已經嘗試過使用loadError
,但它不起作用,因爲它甚至沒有被觸發。
我想在加載我的jqGrid表時發生錯誤時發出警報。例如,當jsonReader沒有得到很好的配置,當repeatitems是真的而不是假像,U可以在Firebug看到錯誤:警報與jqGrid錯誤消息
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);
}
修訂:你說得對,這是我的工作之前,IE只讀取本地數據描述的try {...} catch (err) {...}
。在從服務器獲取數據的情況下,異常發生在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。您只應使用「簡單」優化。
我已經試過,並沒有工作。有人告訴我,這是因爲jqgrid代碼已經有了很大的嘗試,所以我沒有機會做我想做的事情。但我不確定,這就是我發佈這個問題的原因。 – user998692
@ user998692:你說得對。我修改了我的答案。 – Oleg
謝謝你的幫助。 – user998692