我使用页脚行显示“总金额”列。如果找到0条记录,我会显示消息:“没有记录。如果要添加记录,请单击下面的”+“按钮。” 但是,页脚行仍然显示为空单元格。
我尝试将方法clearGridData作为
grid.jqGrid("clearGridData", true).trigger("reloadGrid");
然而,这不起作用。我可以改用
$(".ui-jqgrid-ftable").css('visibility', 'hidden');
或者你有更好的推荐吗?
此致
Abhilash
答案 0 :(得分:1)
在我看来,最好用页脚而不是表(具有类ui-jqgrid-ftable
)来隐藏div。 div有类ui-jqgrid-sdiv
。 $(".ui-jqgrid-ftable")
的使用对我来说似乎不太好,如果在页面上使用更多的网格。
我认为您可以在loadComplete
回调中隐藏/显示页脚。您可以测试返回的录制数量,并仅在有更多空记录时才显示页脚。相应的代码可以是以下内容:
loadComplete: function () {
var $this = $(this),
$footer = $this.closest(".ui-jqgrid-bdiv").next(".ui-jqgrid-sdiv"),
records = parseInt($this.jqGrid("getGridParam", "records"), 10);
if (records >= 0) {
$footer.show();
} else {
$footer.hide();
}
}
如果您使用$(this.grid.sDiv)
代替$this.closest(".ui-jqgrid-bdiv").next(".ui-jqgrid-sdiv")
,则可以获得最低的性能优势。 grid
是分配给网格DOM的内部属性。在创建jqGrid期间将初始化grid
属性,它将在内部使用。它看起来像
因此,您可以将上述代码更改为
loadComplete: function () {
var $footer = $(this.grid.sDiv),
records = parseInt($(this).jqGrid("getGridParam", "records"), 10);
if (records >= 0) {
$footer.show();
} else {
$footer.hide();
}
}