2017-07-31 105 views
1

我有一个ExtJS 4.1.3网格,但默认过滤器选项被选中,但当网格加载所有网格项时都显示出来。有没有更好的方法来定义默认选项?ExtJS默认过滤器激活,但网格没有过滤

fiddle

代码

{ 
    text: 'Status', 
    width: 100, 
    dataIndex: 'TopicStateValue', 
    filter: { 
      active: true, 
      type: 'list', 
      value: 'Open/Current', 
      options: ['Open/Current', 'Archived/Closed', 'Hold'] 
      } 
    } 
+0

您确定列配置中是否有“过滤器”选项?根据Sencha文档(http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.grid.column.Column)Ext.grid.column.Column没有“过滤”配置值。 – overlordhammer

+0

@overlordhammer过滤器在小提琴中工作 –

+0

您是对的,它不是普通列配置值的一部分,而是Ext.ux.grid.FiltersFeature使用的配置值(http://docs.sencha.com/extjs/4.2 0.3 /#!/ API/Ext.ux.grid.FiltersFeature) – overlordhammer

回答

0

我通过源代码去,并且滤波器对象不被创建直到首次标题菜单被触发(懒惰特征实例化),这意味着您的配置选项在第一次呈现菜单之前不会被应用,并且也意味着t因为对列功能的引用仅包含当时的配置对象,所以在该时间之前无法手动触发更新。你可以在this forked version看到你的代码,初始化方法(它被调用来设置过滤器)仅在列被点击后被调用。您可以进一步自定义Ext.ux.grid.FiltersFeature组件上的init方法,以便更早地创建过滤器并应用它们。也许你可以尝试将过滤器应用于商店?

我希望这个答案可以指出你正确的方向来解决你的问题。