【问题标题】:Get a Grid's Filter Parameters获取网格的过滤器参数
【发布时间】:2012-06-28 07:56:04
【问题描述】:

我正在使用 jQGrid,我想知道是否有办法获取已应用于我正在查看的网格的当前过滤器。例如,如果网格已经按某个列(asc 或 desc)排序,可能已应用的搜索参数等。

这是我的问题:我想将一些参数传递回我正在查看的上一个网格(或最后一页),以便我可以看到前一个网格,就像我向前导航时一样。基本上,我有一个链接,用户将单击该链接导航回他们正在查看的上一个网格的页面。我想将过滤器参数与该链接一起传递。

总体示例:

  1. 我按asc 顺序按client_name 字段过滤了客户端网格。
  2. 然后我单击了一个链接,该链接将我带到一个带有新网格的单独页面。
  3. 我想导航回我之前所在的客户端网格,看到我的网格以 asc 顺序过滤了 client_name,就像我第一次导航离开时一样。

目前,我可以导航回客户端网格,但我想获取已应用的过滤器参数,以便我可以将它们与我的链接一起传递回来。

如果我足够具体,请告诉我!

感谢您的帮助!

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    我建议阅读the answerthis one。答案显示了如何通过使用window.localStorage 来解决非常接近的问题。定义状态的 jqGrid 最重要的选项是:sortnamesortorder 用于排序,searchpostData(主要是postData.filters)用于过滤,page 用于分页。此外,如果您使用columnChooser,则需要使用jqGrid 的remapColumns 选项。您可以另外考虑有关当前选定行的信息(selrowselarrrow)。因此,您需要保存或恢复的参数的确切列表取决于您的要求。

    【讨论】:

    • 今天有时间我会检查这些链接!
    • @FastTrack:您可以按照the answer 中的示例进行操作。它使用getGridParam获取参数sortnamesortordersearchpostData等。可以通过$.ajax将当前网格状态发送到服务器,而不是调用window.localStorage.setItem。跨度>
    • @FastTrack:没有参数'postData.filters'。如果您需要获取参数postDatafilters 属性,您应该使用.jqGrid('getGridParam', 'postData').filters
    • @FastTrack:您可以通过.jqGrid('getGridParam', 'postData') 获取对内部对象postData引用,然后直接设置其任何属性,例如filters。不需要额外调用 setGridParam,因为您将使用 reference 到 jqGrid 使用的 postData
    • @FastTrack;是的,这是正确的。不要忘记将JSON.stringifymyFilters 对象一起使用。所以filters属性的值必须是JSON string.
    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多