如果没有记录存在,如何隐藏jqGrid页脚行

时间:2014-04-09 13:38:31

标签: jqgrid footer

我使用页脚行显示“总金额”列。如果找到0条记录,我会显示消息:“没有记录。如果要添加记录,请单击下面的”+“按钮。” 但是,页脚行仍然显示为空单元格。

我尝试将方法clearGridData作为

grid.jqGrid("clearGridData", true).trigger("reloadGrid"); 

然而,这不起作用。我可以改用

$(".ui-jqgrid-ftable").css('visibility', 'hidden'); 

或者你有更好的推荐吗?

此致

Abhilash

1 个答案:

答案 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属性,它将在内部使用。它看起来像

enter image description here

因此,您可以将上述代码更改为

loadComplete: function () {
    var $footer = $(this.grid.sDiv),
        records = parseInt($(this).jqGrid("getGridParam", "records"), 10);

    if (records >= 0) {
        $footer.show();
    } else {
        $footer.hide();
    }
}