【问题标题】:On load of jqgrid, apply default filter on loaded data在加载 jqgrid 时,对加载的数据应用默认过滤器
【发布时间】:2019-04-25 13:59:05
【问题描述】:

具有 3 个选项的网格 1) 我的过滤器 - 由我保存 2)共享过滤​​器 - 由其他人共享 3) 全部 - 我的和共享的

我想在我的过滤器中显示默认结果的网格。 我一次加载了所有过滤器,默认情况下它必须显示我的过滤器记录,但显示所有过滤器记录。 在选择上述各个选项时,网格会正确加载数据。问题仅在于我的默认过滤器 请帮帮我。

【问题讨论】:

  • 请始终写下您使用(可以使用)的 jqGrid 的 版本,以及 forkfree jqGrid,商业版Guriddo jqGrid JS或版本 datatype 也很重要。 JavaScript 代码可能会很有帮助。如果使用免费的 jqGrid 分叉,您可以将forceClientSorting: true 选项与loadonce: true 结合使用。它允许对从服务器加载的数据进行排序和过滤。
  • 您好,感谢您的回复。我正在使用 jqGrid 4.6.0 版。我正在用数据类型为 json 填充 jqgrid 数据。使用 forceClientSorting:true,问题没有解决。但是我使用 postdata.filters 作为 {"groupOp":"OR","rules":['+ '{field: "shared_by", op: "eq", "data": " "}'+ ',{字段:“shared_by”,操作:“eq”,“数据”:“'+login_user_id+'”}]}'};但它在网格中显示为所有过滤器记录的数据。但我想显示满足上述条件的数据。
  • jqGrid 4.6 已经 5 岁 并且选项 forceClientSorting 尚未实现。您必须升级到与旧的 jqGrid 4.6 兼容的free jqGrid (4.15.5)。

标签: jquery jqgrid


【解决方案1】:

我建议您将旧的 jqGrid 4.6 升级到当前版本的free jqGrid。有关免费 jqGrid 使用的更多详细信息,请参阅here。升级后您可以使用以下选项

datatype: "json",
loadonce: true,
forceClientSorting: true // force local sorting and filtering
search: true, // to apply the filter from postData.filters
postData: {
    // the filters property is the filter, which need be applied
    // to the data loaded from the server
    filters: JSON.stringify({
        groupOp: "OR",
        rules: [
            { field: "shared_by", op: "eq", data: " " },
            { field: "shared_by", op: "eq", data: login_user_id }
        ]
    })
},
...

postData.filters 的确切值取决于服务器上保存的数据。作为使用示例,请参阅为 the old answer 创建的演示 https://jsfiddle.net/OlegKi/epcz4ptq/。更多信息请参见another old answer

【讨论】:

  • @ani:不客气!您应该“接受”解决方案并获得您的第一个声誉积分。有关详细信息,请参阅here
猜你喜欢
  • 1970-01-01
  • 2018-04-05
  • 2012-10-19
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 2021-01-27
  • 1970-01-01
相关资源
最近更新 更多