我正在使用过滤器的网格,但它只过滤第一页。当我点击“下一步”时,它会忘记我的过滤器并加载下一组记录。即使我点击“下一步”加载分页中的下一组记录,如何记住过滤器?
谢谢, SS
答案 0 :(得分:6)
您需要将过滤器参数设置为商店的baseParams
。在商店的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有详细信息。
答案 1 :(得分:-1)
设置baseParams
,如上面的答案,仅适用于EXTJS 3.x或更低版本。
对于EXTJS 4.xx,我们必须在商店的代理中添加extraParam
您的查询:
store.getProxy().extraParam= A JSON ENCODED QUERY
喜欢:
store.getProxy().extraParam= Ext.JSON.encode({'sort':[{'id':'ASC'}]})
要获得正确的配置,请在导航器开发人员工具或后端调查您的请求