ExtJS 分页网格仅过滤第一页

问题描述 投票:0回答:2

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

filter extjs pagination grid
2个回答
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
投票

设置

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

© www.soinside.com 2019 - 2024. All rights reserved.