私には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
、データのタイプに依存します。例外をキャッチするには、その場所で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最小化機能を使用して自分で作成できます。たとえば、MicrosoftAjaxMinifierは無料でダウンロードしてインストールできます。としての使用法
ajaxmin.exe jquery.jqGrid.src.js -out jquery.jqGrid.min.js
元のjquery.jqGrid.min.jsよりも少し小さいjquery.jqGrid.src.jsの新しい最小化バージョンを生成します。
もう1つの優れた最小化機能は、ここからオンラインで入手できます。「単純な」最適化のみを使用する必要があります。