2015-11-03 40 views
0

有沒有辦法將過濾器鏈接在一起,其中一列中應用的過濾器將預過濾其他列中的可用過濾器?首先我從多重選擇的角度對此感興趣,但對於我猜測的所有過濾器類型,它可能是通用的。將yadcf multi_select過濾器鏈接在一起

例如:

第1列的數據包含:

  1. 俄克拉荷馬
  2. 密蘇里
  3. 猶他州
  4. 德州
  5. 堪薩斯

第2列的數據包含:

  1. 奧巴馬
  2. 羅姆尼

從我知道有「俄克拉荷馬」的所有列1個數據將總是意味着列2將等於「羅姆尼」的數據集。因此,如果我從mutli_select中選擇'Oklahoma',那麼第2列的multi_select的下拉列表現在應該只顯示'Romney'。

基本上,我是否可以根據已經放置的其他過濾器預過濾我的過濾器?

回答

0

我想你問yadcf的cumulative_filtering: true選項,

showcase page和這裏的代碼示例:

$(document).ready(function() { 
    'use strict'; 

    var oTable; 
    oTable = $('#example').DataTable(); 

    yadcf.init(oTable, 
     [ 
      { 
       column_number : 0, 
       filter_type: "multi_select", 
       select_type: 'select2' 
      }, 
      { 
       column_number: 3, 
       filter_type: "auto_complete", 
       text_data_delimiter: "," 
      }, 
      { 
       column_number : 4, 
       filter_type: "multi_select", 
       select_type: 'select2', 
       column_data_type: "html", 
       html_data_type: "text", 
       filter_default_label: "Select tag" 
      } 
     ], 
     { 
      cumulative_filtering: true 
     } 
    ); 
}); 

正如你所看到的cumulative_filtering: true是一個對象的屬性,一個對象,那是init函數的第三個參數,當使用.yadcf([{...}]) api時,您應該將該對象作爲第二個對.yadcf約束器的結構,如下所示:

.yadcf([{...}], {cumulative_filtering: true})

+0

謝謝。這對我來說並不適用。我將外部過濾器與Chosen插件結合使用,所以我不確定這是否會對我的問題有所幫助。在追蹤發生了什麼後,當你在3250行中調用AppendFilters時,它會回溯並完成它所需的一切,除非它實際上並未更新「選擇」下拉列表。因此,在第3250行,我插入了一個調用destoryThirdPartyPlugins來清理'選擇'下拉菜單,然後這工作。 –

+0

很好,你發現了一個bug,隨時在github上詳細介紹一個新問題。 – Daniel