0

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

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

4

1 回答 1

0

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

store.filter(Ext.create('Ext.util.Filter', {
   filterFn: function(item) { 
       return item.get('color') == 'RED' || item.get('priority') == 'low'; 
   }, 
}))
于 2012-05-29T19:15:37.297 回答