Ext JS 4:删除或更新Store中的特定过滤器

时间:2013-06-13 18:33:36

标签: javascript extjs

我有一种奇怪的情况。我有多个过滤器应用于同一商店LOCALLY。但只要有新值,我就必须更新特定的过滤器(删除,创建或更新)。 因此我不能使用store.clearFilter,因为它清除了一切。

我试过

                            store.filters.removeAtKey(prop);

                    store.filters.add(prop, new Ext.util.Filter({
                      property: prop,
                      value: event.value
                    }));

没有运气。

任何帮助表示赞赏

Tharahan

2 个答案:

答案 0 :(得分:0)

您不应该使用商店的removeFilter方法吗?

// false prevents useless update until you've added the new filter
store.removeFilter(prop, false);

答案 1 :(得分:0)

你可以在清理之前获得所有过滤器:

<强> store.filters

var filtersAux = [];
// get filter
Ext.Array.each(store.filters.items,function(element,pos,array){
    // if Not (filter to remove)
    filtersAux.push(element);
});

// remove all filters
store.clearFilter();

// add the filters:
Ext.Array.each(filtersAux,function(element,pos,array){
    store.filter(element.property,element.value);
});

它对我来说很完美。