我正在使用商店来获取所有徒步旅行者的专业(因此徒步旅行者有很多专业化)。但是,我有一个详细信息窗口,其中为当前选定的徒步旅行者添加/删除/显示此专业(是的,它是一个详细信息窗口)。
我的问题是我的商店为所有徒步旅行者获取数据,但我希望它在详细窗口启动时显示给定的徒步旅行者的数据。另请注意,我在数据网格中显示数据,因此用户可能可以添加过滤器,我注意到如果我添加带有store.filter({...})
的过滤器并且用户添加了带数据网格的过滤器,我的过滤器将被删除(所以基本上他们没用了。
我应该使用哪种方法?你有什么建议吗?我想为每个徒步旅行者准备一个商店,但我不喜欢这个解决方案。
编辑1: 我还注意到我无法像数据网格构建过滤器一样创建过滤器:
Ext.create('Ext.util.Filter', {
type: 'numeric',
comparison: 'eq',
field: 'hiker_id',
property: 'hiker_id',
value: me.hiker.get('id'),
root: 'data'
})
这很无聊,因为我在服务器端增加了一个解析网格过滤器的功能。
答案 0 :(得分:2)
我们只是将json格式的过滤器提供给商店的额外参数。并解析后端。在分页或刷新网格时,额外的参数保持不变。
grid.getStore().getProxy().extraParams = { filter: yourFilter };
答案 1 :(得分:1)
- 您的用户如何使用过滤器?
store.filter
接受数组和函数,因此您可以使用它做很多事情,而不会实际处理服务器上的数据。 (例如,管理一个传递给过滤器的数组,对某个对象进行测试,或其他什么)
永久过滤器?不是那么多,但是因为你可以添加多个过滤器等,所以跟踪过滤器的位置是相对微不足道的。
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-filter