【问题标题】:JQGrid filterToolbarJQGrid 过滤器工具栏
【发布时间】:2011-04-06 09:59:55
【问题描述】:

过去 2 天我一直被这个问题困扰。做了很多谷歌搜索,但无法找到确切的答案。

以下是 JQGrid 定义

$("#tblresults").jqGrid({
            datastr: data,
            datatype: 'jsonstring',
            height: 230,
            colNames: colNames,
            colModel: colModel,
            rowNum: -1,
            viewrecords: true,
            loadComplete: function() {
                ChangeSize('#tblresults', 70);
            }
        });

这是过滤器定义

    $("#tblresults").filterToolbar({ searchOnEnter: true, stringResult: true, defaultSearch: "cn", groupOp: "AND" });

我从一个简单的 getJSON 调用中获取数据。但是当我尝试使用过滤器时,没有任何效果。 我调试了一段代码,发现jqgrid内部调用了reloadgrid,导致数据消失。

谁能告诉我如何在客户端上完全在 jqgrid 中进行过滤。 我正在使用 v3.8,我了解到 jqgrid v3.7 有这个客户端过滤逻辑。

提前致谢

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    你有数据吗 首先你不应该使用-1 作为rowNum 的值。而不是使用任何可靠的值,例如rowNum:1000。更好的是使用本地数据分页。在这种情况下,您应该只设置例如rowNum:10, rowList:[5,10,20,100]

    如果您通过 ajax 调用从服务器获取 jqGrid 的输入参数 colNamescolModeldata 参数,您还应该考虑使用 data 参数而不是 datastr。在这种情况下,datatype 应从 'jsonstring' 更改为 'local'

    gridview:trueheight:'100%' 等其他一些常用参数也对您有用。第一个(gridview:true)只是在没有任何缺点的情况下提高了性能,第二个(height:'100%')将在没有垂直滚动条的情况下选择最佳网格高度。可以很好的结合本地数据分页(rowNum:10, rowList:[5,10,20,100]等参数)。

    【讨论】:

    • 我在某处读到 rowNum=-1 将显示网格中的所有记录,这是我的要求。在任何情况下,记录数都不会超过 200,因此垂直滚动条很好。我会尝试更改数据类型和数据参数,看看它是否有效。但是现在我使用的是过滤服务器上记录的旧方法。
    • @Nilesh:如果您将值发送到服务器,rowNum=-1 的值可能没问题。该值在 jqGrid (rowNum:10 而不是rowNum:200,网格将很快准备好 20 次。用户是否能够阅读和分析 200 行网格?可能排序和过滤(参见toolbar filtering 对用户来说会更好,并且可以使用分页。
    【解决方案2】:

    添加这些参数,您的工具栏搜索应该会起作用。当我开始使用 jqgrid 时,我也遇到过类似的问题。

    search:true,
    loadonce:true,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 2011-01-27
      相关资源
      最近更新 更多