仅当 jqgrid 超过 20 行时如何显示过滤器工具栏

How to show filter toolbar only if jqgrid has more than 20 rows

如果从远程 json 数据填充,则免费 jqgrid。 代码

$(function () {
    $grid.jqGrid('filterToolbar', {
        stringResult: true,
        searchOnEnter: true,
        defaultSearch: 'cn'
    });
    // 
    $(".ui-search-table input[type=date]").each(function () {
        $(this).css("width", $(this).closest("th.ui-th-column").width() + "px");
    });

用于创建过滤器工具栏。

有时网格为空或包含的行很少。在这种情况下,过滤器工具栏很混乱。对于空网格,用户认为向该行输入数据会添加新行。这让用户感到困惑。

如何仅在网格包含超过 20 行时显示过滤器工具栏?

您可以测试 loadComplete 内部的 $(this).jqGrid("getGridParam", "records") 的值。它是网格中记录的总数。如果该值将少于 20 行,那么您可以调用 toggleToolbar 到 hide/show 过滤器工具栏。

jqGrid 当前没有任何可用于测试的直接方式,其中工具栏当前是可见的。您可以使用this.ftoolbar$("#grid")[0].ftoolbar)来测试过滤器工具栏是否已经存在,使用$(this.grid.hDiv).find("tr.ui-search-toolbar").css("display") === "none"来测试过滤器工具栏是否已经隐藏。