サブグリッドのコードを見ると、読み込み中の div が表示される場所を見つけることができます。
$("#load_"+ts.p.id).show();
一方、標準 (メイン) グリッドを表示するコードは次のようになります (こちらを参照)。
beginReq = function() {
ts.grid.hDiv.loading = true;
if(ts.p.hiddengrid) { return;}
switch(ts.p.loadui) {
case "disable":
break;
case "enable":
$("#load_"+$.jgrid.jqID(ts.p.id)).show();
break;
case "block":
$("#lui_"+$.jgrid.jqID(ts.p.id)).show();
$("#load_"+$.jgrid.jqID(ts.p.id)).show();
break;
}
}
したがって、設定がメイン グリッドでのみloadui: "disable"
使用されることがわかります。上記のコードからわかるように、その他の値(使用する不明な「なし」の値など) は、 として解釈されます。loadui
"enable"
"block"
loadui: "disable"
私の見解では、これは subgrid のバグです。
回避策として、 jqGrid の作成後にロード div を削除することをお勧めします。たとえば、グリッドのテーブル要素にid="list"
次の行がある場合:
$("div#load_list").remove();
div を削除するだけで、メイン グリッドとサブグリッドの両方に表示されることはありません。
コメントに基づいて更新: OK ! 今、私はあなたの問題を理解しています。その前に私はあなたが使用しdatatype: 'local'
ました。一部のリモート データ型とblockUIプラグインを使用する場合は、次の操作を実行できます。ajax
サブグリッド用に jqGrid によって現在使用されている呼び出しは、ここで確認できます。イベントを使用するcomplete
ため、 jQuery.ajaxsuccess
のおよびerror
イベントは現在無料です。したがって、イベントを使用して、読み込みオーバーレイを閉じるメソッドを呼び出すことができます。jqGrid のajaxSubgridOptionsパラメータを使用できます.unblock()
$.unblockUI()
$("#list").jqGrid({
// options of grid of subgrid ...
ajaxSubgridOptions {
success: function () {
$.unblockUI(); // or $("#list").unblock();
},
error: function () {
$.unblockUI(); // or $("#list").unblock();
}
}
);
問題が解決しない場合は、blockUIプラグインの使用方法を説明するコード フラグメントを質問に含める必要があります。ブロック解除メソッドの呼び出しを挿入してコードを変更します。