【问题标题】:How to hide jqGrid footer row when no records present没有记录时如何隐藏jqGrid页脚行
【发布时间】:2014-04-09 22:47:45
【问题描述】:

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

我尝试了 clearGridData 方法

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

但是这不起作用。我应该改用

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

或者你有更好的推荐吗?

问候,

阿比拉什

【问题讨论】:

    标签: jqgrid footer


    【解决方案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 的内部属性。 grid 属性将在创建 jqGrid 期间初始化,并将在内部使用。好像

    所以你可以把上面的代码改成

    loadComplete: function () {
        var $footer = $(this.grid.sDiv),
            records = parseInt($(this).jqGrid("getGridParam", "records"), 10);
    
        if (records >= 0) {
            $footer.show();
        } else {
            $footer.hide();
        }
    }
    

    【讨论】:

    • 感谢 Oleg,您一直以来都提供了很大的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多