Если вы посмотрите в коде подсетки, вы можете найти здесь место, где будет отображаться загрузочный блок, как
$("#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"
(например, неизвестное значение «none», которое вы используете), будет интерпретировано как loadui: "disable"
.
На мой взгляд это ошибка в подсетке .
В качестве обходного пути я предлагаю вам удалить загрузочный div после создания jqGrid . Если элемент таблицы вашей сетки имеет, например, id="list"
, то следующая строка:
$("div#load_list").remove();
просто удалит div, и вы никогда не увидите его ни в основной, ни в подсетке.
ОБНОВЛЕНО на основании комментариев: ОК! Теперь я понимаю вашу проблему. Я хоть до этого пользовался datatype: 'local'
. В случае использования какого-либо удаленного типа данных и плагина blockUI вы можете сделать следующее. Вызов ajax
, используемый jqGrid для подсетки, в настоящее время вы можете увидеть здесь . Он использует событие complete
, поэтому события success
и error
jQuery.ajax теперь бесплатны. Таким образом, вы можете использовать события для вызова .unblock()
или $.unblockUI()
методов, которые закроют оверлей загрузки. Вы можете использовать ajaxSubgridOptions параметр jqGrid
$("#list").jqGrid({
// options of grid of subgrid ...
ajaxSubgridOptions {
success: function () {
$.unblockUI(); // or $("#list").unblock();
},
error: function () {
$.unblockUI(); // or $("#list").unblock();
}
}
);
Если это не решит вашу проблему, вы должны включить в свой вопрос фрагмент кода, который объясняет, как вы используете плагин blockUI , и я изменю код, вставив вызовы методов разблокировки.