如果您查看子网格的代码,您可以在这里找到加载 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
other as "enable"
or的任何值"block"
(如您使用的未知“none”值)将被解释为loadui: "disable"
.
在我看来,这是 subgrid 中的一个错误。
作为解决方法,我建议您在创建 jqGrid 后删除加载 div。例如,如果您的网格的表格元素有id="list"
,那么下一行:
$("div#load_list").remove();
只会删除 div,您将永远不会在主网格和子网格中看到它。
根据评论更新:好的!现在我明白你的问题了。我虽然在那之前你用过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插件的代码片段,我将通过插入解除阻塞方法的调用来修改代码。