2017-08-28 105 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(); 

工程就像一个魅力。 过滤器现在出现,甚至在我的情况下可移动。

我希望这也能帮助别人。