ExtJS 分页网格仅过滤第一页

发布于 2024-11-26 12:57:54 字数 92 浏览 0 评论 0原文

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

I am working on a grid which uses filters, but it only filters the first page. When I click 'next' it forgets about my filters and loads the next set of records. How do I make it remember the filter even if I click 'next' to load the next set of records from paging?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山川志 2024-12-03 12:57:54

您需要将过滤器参数设置到商店的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 文档有详细信息。

You need to set the filter parameters into the store's baseParams. Passing your filter parameters in the load call on the store will only use them for the first load call — subsequent calls made by the paging toolbar won't pass them.

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' } 

The ExtJS Ext.data.Store docs have the details.

有木有妳兜一样 2024-12-03 12:57:54

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

Setting the baseParams, like in the answer above, is only for EXTJS 3.x or less.
For EXTJS 4.xx, we must add in the store's proxy, an extraParam with your query:
store.getProxy().extraParam= A JSON ENCODED QUERY
like:
store.getProxy().extraParam= Ext.JSON.encode({'sort':[{'id':'ASC'}]})
For a proper configuration, investigate the your request, in your navigator developer's tools or in your backend

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文