2015-06-11 50 views
0

我正在使用datatables和工作正常的yadcf插件。不過,我試圖添加一個自定義過濾器,並沒有運氣讓它工作。它似乎被忽略了。datatables yadcf自定義函數未觸發

基本上我想篩選細胞是否爲空或有數據

我用這個例子作爲一個起點: http://yadcf-showcase.appspot.com/DOM_source.html

我的自定義函數是:

function filterGroupName(filterVal, columnVal) { 
    var found; 
    if (columnVal === '') { 
     return true; 
    } 
    switch (filterVal) { 
     case 'Groups': 
      found = columnVal.length > 0; 
      break; 
     case 'No Groups': 
      found = columnVal.length < 1 || columnVal === ''; 
      break; 
     default: 
      found = 1; 
      break; 
    } 

    if (found !== -1) { 
     return true; 
    } 
    return false; 
} 

這裏是設置yadcf的腳本的一部分:

{ 
    column_number: 3, 
    filter_container_id: "filter-group-name", 
    filter_type: "custom_func", 
    data: [{ 
     value: 'Groups', 
     label: 'Groups' 
    }, { 
     value: 'No Groups', 
     label: 'No Groups' 
    }], 
    filter_default_label: "Select Groups", 
    custom_func: filterGroupName 

} 

我已經在腳本中設置了一個斷點,以查看發生了什麼,但它從未被觸發

頁面獲取正確的選擇框創建,但選擇任一選項都不返回任何條目 - 所有內容都在數據表中被過濾掉。

那麼,我錯過了什麼讓函數工作?

謝謝

+0

在filterGroupName中的第一行添加'alert('aaa');'並在調用yadcf之前嘗試調用'filterGroupName();'以查看filterGroupName函數是否在該代碼範圍內可見如果不是,確保它會。 – Daniel

回答

0

我設法解決了這個問題。

在開發過程中,我將列的yadcf的data屬性修改爲上面的那個。然而,我在狀態保存集的數據表,所以原來的過濾器正在使用 - 忽略我對新的過濾器和結果代碼的結構所做的任何更改。

我刪除狀態保存和過濾器來了!