2017-08-28 87 views
0

我在我的網站上使用datatables和yadcf。一切工作正常。在某些情況下,我想要預過濾一列。yadcf:exFilterColumn函數不起作用

yadcf.init(oTable, [ { 
         column_number : 1, 
         filter_default_label : "", 
         filter_reset_button_text : false, 
         filter_type : "multi_select", 
         select_type : 'select2' 

        }, { 
         column_number : 2, 
         filter_default_label : "", 
         filter_reset_button_text : false, 
         filter_type : "multi_select", 
         select_type : 'select2' 

        }, { 
         column_number : 3, 
         filter_default_label : "", 
         filter_reset_button_text : false, 
         filter_type : "multi_select", 
         select_type : 'select2' 

        }, { 
         column_number : 5, 
         filter_default_label : "", 
         filter_reset_button_text : false, 
         filter_type : "multi_select", 
         select_type : 'select2' 

        }, { 
         column_number : 6, 
         filter_default_label : "", 
         filter_reset_button_text : false, 
         filter_type : "multi_select", 
         select_type : 'select2' 

        } ]); 

直到這一點,一切工作正常。但當我補充說:

yadcf.exFilterColumn(oTable, [[3, 'WNC402']]); 

沒有出現任何過濾器。控制檯輸出錯誤是:

jquery.dataTables.yadcf.js:688 Uncaught TypeError: selected_value.join is not a function 
    at yadcfMatchFilterString (jquery.dataTables.yadcf.js:688) 
    at Object.exFilterColumn (jquery.dataTables.yadcf.js:3792) 
    at HTMLDocument.<anonymous> 
    at i (jquery-2.2.4.min.js:2) 
    at Object.fireWith [as resolveWith] (jquery-2.2.4.min.js:2) 
    at Function.ready (jquery-2.2.4.min.js:2) 
    at HTMLDocument.J (jquery-2.2.4.min.js:2) 

該網站仍然正常加載,我甚至可以手動設置過濾器。但這個功能應該可以完成這項工作。

我的數據表的版本是:1.10.12

我yadcf版本:0.8.9

一些鏈接:

https://datatables.net/

https://github.com/vedmack/yadcf

謝謝。

回答

0

請閱讀the docs和過濾mutiselect柱

yadcf.exFilterColumn(oTable, [[0, ['Some Data 1','Some Data 2']]]); // for pre filtering multi select filter you should use array with values (or an array with single value)

的自你要提供一種陣列內部的過濾器值的多選擇濾波器的使用示例。

+0

謝謝你的工作。我沒有正確閱讀文檔。仍然是datatables列().search()。draw()也是一種選擇。 – Gulliver

+0

確定它的替代品,yadcf使用數據表api底層,但我建議使用yadcf api,因爲在某些情況下/配置yadcf將不僅僅是調用數據表api(維護過濾器/ etc') – Daniel

0

好的我找到了一些東西。而是使用yadcf的exColumnFilter函數,我使用了Datatables搜索功能。

oTable.columns(3).search("WNC402").draw(); 

工程就像一個魅力。 過濾器現在出現,甚至在我的情況下可移動。

我希望這也能幫助別人。