1

jqGrid テーブルのロード中にエラーが発生したときにアラートを受け取りたいと考えています。たとえば、jsonReader が適切に構成されていない場合 (repeatitems が false ではなく true の場合など)、Firebug で次のエラーを確認できます。

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

このようなエラーをアラートに配置するにはどうすればよいですか? すでに を使用してみloadErrorましたが、トリガーされていないため機能しません。

4

1 に答える 1

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。正確には、使用するデータのタイプの内部で発生するaddJSONDataaddXmlData、データのタイプに依存します。例外をキャッチするには、その場所で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つの優れた最小化機能は、ここからオンラインで入手できます。「単純な」最適化のみを使用する必要があります。

于 2011-11-12T11:10:58.920 に答える