2016-06-15 64 views
1

我有多個過濾器,我將應用在劍道網格數據源上。Kendo網格數據源嵌套和組合過濾器

如果我有像下面的過濾器,一切都還好這裏gridConfig是我的劍道網格的配置:

  var mainFilters = []; 

      mainFilters.push({ 
       field: "x", 
       operator: "eq", 
       value: 1 
      }); 

      mainFilters.push({ 
       field: "y", 
       operator: "eq", 
       value: 2 
      }); 

      gridConfig.instance.dataSource.filter({ 
       logic: "and", 
       filters: mainFilters 
      }); 

我的問題是在這裏。我有另一個屬性可以說z這是一個值的數組。我想用邏輯在z Propery值上過濾kendo網格數據源。例如,這裏是我的小Z屬性格式過濾:

  zFilters.push(
        { field: "z", operator: "eq", value: 3}, 
        { field: "z", operator: "eq", value: 4}); 

      gridConfig.instance.dataSource.filter({ 
       logic: "or", 
       filters: zFilters 
      }); 

現在,我想這兩個過濾器結合起來,同時運用他們對我的劍道網格的數據源。這意味着我的最終結果是基於這個邏輯:

(x = 1) AND (y = 2) AND (z = 3 OR z = 4) 

我怎樣才能用劍道過濾器做到這一點?

回答

0

它必須在結構被應用到窗口小部件,如果你有混合「或」,「與」過濾器是

{ 
    logic: "and", 
    filters: [ 
     { field: "x", operator: "eq", value: 1}, 
     { field: "y", operator: "eq", value: 2}, 
     { logic: "or", filters: [{ field: "z", operator: "eq",value: 3 }, { field: "z", operator: "eq",value: 4 }]} 
    ] 
} 

終於

grid.dataSource.filter(abovefilterobject) 

希望它有助於

+0

你的邏輯似乎不正確! – Pedram

+0

我已經測試了這樣的結構,但是,它不起作用。事實上,我有一個kendo網格的數據源,我將在本地過濾它。 – Pedram