如何使用ExtJs网格过滤器过滤多个列

时间:2012-05-29 19:09:02

标签: javascript extjs filter extjs3

我有这个代码允许我在一个列上过滤我的商店:

var events_ds = new Ext.data.JsonStore({
                autoLoad: true,
                autoDestroy: true,
                url: '<% $base %>json/events/<% $eventWWN %>.json',
                storeId: 'events_ds',
                idProperty: 'id',
                fields: [ 'id', 'precedence', 'affectedWWN', 'eventType', 'color', 'CollectTime' ],
                listeners:
                         { 'load': function(store) {
                                store.filter( 'color', $_GET['color'] )
                         }
                 }
        });

现在,我想要过滤多个列。

我正在考虑将'听众'行更改为此但它正在运行,我没有看到另一个我可以使用多个过滤器的示例 - 有任何建议吗?

listeners:
     { 'load': function(store) {
            store.filter( 'color', $_GET['color'] ),
            store.filter( 'priority', $_GET['priority'] )
     }
}

更新:这是 ExtJs 3.4

1 个答案:

答案 0 :(得分:0)

如果您在发布的代码中使用过滤器,则会获得逻辑AND操作。如果你需要更复杂的东西,你可以简单地创建一个这样的过滤函数:

store.filter(Ext.create('Ext.util.Filter', {
   filterFn: function(item) { 
       return item.get('color') == 'RED' || item.get('priority') == 'low'; 
   }, 
}))