我正在加载我的商店和网格面板并指定一个类似的过滤器
myGrid.store.filter('enabled', 'true');
这是为了过滤掉未启用的记录。这有效,我的gridpanel最初显示所有启用的记录等于true。然后,当我使用gridpanel标头应用过滤器并搜索我知道已启用设置为false的记录时,会出现。
初始分配store.filter(....)
后的初始网格面板列表会删除所有未启用等于true的记录,但使用标题进行过滤会将其包含在新过滤器中。
我按照这里的文档: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.ux.grid.FiltersFeature
所以我有这样的事情:
Ext.apply(me, {
width: 500,
height: 250,
store: 'BlockItems',
features: [{
ftype: 'filters',
local: true,
从标题中删除过滤器后,我再次列入我的列表,但现在它包含enabled != true
和enabled == true
的记录,即所有记录。
我很困惑。我已经过滤了我的商店,为什么网格“标题过滤器”不符合我最初添加的过滤器?
答案 0 :(得分:1)
这是设计的。如果您使用列过滤器,它会从商店中删除所有其他过滤器,因为它无法知道您是否要保留它们。
你有三种可能性。最彻底的是如果您不打算显示已禁用的记录,则只在商店中启用已启用的记录。
如果你不想这样做,你可以听取filterchange事件并在每次filterchange之后添加启用的过滤器(检查它是否已经添加,否则你得到一个无限循环),或者你可以重新定义每个列过滤器应如何工作,以便它们满足您的特殊需求:
http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.ux.grid.FiltersFeature-cfg-filters