【问题标题】:ExtJS paging grid filters only the first pageExtJS 分页网格只过滤第一页
【发布时间】:2011-07-25 19:48:24
【问题描述】:

我正在研究一个使用过滤器的网格,但它只过滤第一页。当我单击“下一步”时,它会忘记我的过滤器并加载下一组记录。即使我单击“下一步”从分页加载下一组记录,如何让它记住过滤器?

谢谢, SS

【问题讨论】:

    标签: extjs filter grid paging


    【解决方案1】:

    您需要将过滤器参数设置到商店的baseParams。在 store 上的 load 调用中传递您的过滤器参数只会将它们用于第一次加载调用 - 分页工具栏进行的后续调用将不会传递它们。

    store.setBaseParam('query', 'search-text'); // always send 'query'
    store.load({ params: { start: 0, limit: 40 } });
    // this will send:
    // { query: 'search-text', start: 0, limit: 40 }
    
    store.load({ params: { query: 'bob', start: 41, limit: 40 } });
    // baseParams overridden by load params
    // { query: 'bob', start: 41, limit: 40 }
    
    store.load();  // only sends baseParams
    // { query: 'search-text' } 
    

    ExtJS Ext.data.Store docs 有详细信息。

    【讨论】:

    • 太棒了,谢谢WES,我会试试这个并告诉你。
    【解决方案2】:

    设置baseParams,就像上面的答案一样,仅适用于 EXTJS 3.x 或更低版本。 对于 EXTJS 4.xx,我们必须在商店的代理中添加 extraParam 和您的查询: store.getProxy().extraParam= A JSON ENCODED QUERY 像: store.getProxy().extraParam= Ext.JSON.encode({'sort':[{'id':'ASC'}]}) 要进行正确的配置,请在您的导航器开发人员工具或后端调查您的请求

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-09
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多