extjs - 如何在组合框中过滤除选定值之外的网格数据

时间:2016-09-04 06:10:31

标签: javascript extjs checkbox combobox

Ext js具有内置的网格存储功能,称为过滤器,并使用组合框中的选定值过滤网格结果。

我想反过来。它应该过滤除选定数据之外的网格数据。

示例:默认情况下,首先选中“全部”复选框。当我取消选中任何复选框时,除了选中的复选框之外,网格应显示数据。

Please find screenshot for filter options

以下是我尝试过的代码,但它会使用选中的复选框过滤网格。

var filterArray = [];

filterArray.push({
                   id: 'h2',
                   property: 'vehicle_trafic_light',
                   value: 'Y',     //For Yellow-Ball
                   anyMatch: true,
                   ensitive: false
                 }); 
filterArray.push({
                   id: 'h2',
                   property: 'vehicle_trafic_light',
                   value: 'G',      //For Green-Ball
                   anyMatch: true,
                   ensitive: false
                 });

store.filter(filterArray);

如果有人对此有任何建议,请告诉我。

2 个答案:

答案 0 :(得分:1)

您可以使用filterFn

答案 1 :(得分:1)

您可以使用filterBy

filterBy 接受一个函数(让调用很有趣)作为参数,并为商店中的每个记录调用函数fun。

store.fliterBy(function(record){
        if(condition to include record)
            return true;                    // record will be included
        else
            return false;                   // record will be excluded
});

并根据该记录的fun的返回值过滤记录。

所以,

  1. 如果记录A的乐趣返回true,则记录A将包含在商店中。
  2. 如果记录B的fun返回false,则将排除记录B.