0

我正在使用商店来获取所有徒步旅行者的专业(所以徒步旅行者有很多专业)。但是,我有一个详细信息窗口,其中仅针对当前选定的徒步旅行者添加/删除/显示此专业(是的,这是一个详细信息窗口)。

我的问题是我的商店获取所有徒步旅行者的数据,但我希望它显示,当详细窗口打开时,只显示给定徒步旅行者的数据。还要注意我在数据网格中显示数据,所以用户可能可以添加过滤器,我注意到如果我添加一个过滤器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'
    })

这很无聊,因为我在服务器端实现了一个已经解析网格过滤器的功能。

4

2 回答 2

2

我们只是将 json 格式的过滤器提供给商店的额外参数。并解析该后端。在分页或刷新网格时,额外的参数保持不变。

grid.getStore().getProxy().extraParams = { filter: yourFilter };
于 2012-08-13T06:38:48.630 回答
1

-How- 你的用户在做过滤器吗?

store.filter接受数组和函数,因此您可以用它做很多事情,而无需实际处理服务器上的数据。(例如,管理一个正在传递给过滤器的数组,在某个地方测试一个对象,或者其他什么)

永久过滤器?没那么多,但是由于您可以添加多个过滤器等,因此跟踪哪些过滤器已到位相对简单。

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-filter

于 2012-08-13T14:21:48.617 回答