yadcf:exFilterColumn函数不起作用

时间:2017-08-28 14:39:50

标签: javascript jquery datatables yadcf

我在我的网站上使用数据表和yadcf。一切都很好。在某些情况下,我想预先过滤一列。

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

谢谢。

3 个答案:

答案 0 :(得分:0)

好的,我找到了一些东西。而是使用yadcf的exColumnFilter函数,我使用了Datatables搜索函数。

<label>Drop Columns: </label>
<select id="select1" name="select1" runat="server" class="form-control select2" multiple="multiple">
  <option value=0>Rows Header</option>
  <option value=1>item 1</option>
  <option value=2>item 2</option>
  <option value=3>item 3</option>
  <option value=4>item 3</option>
</select>

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

我希望这也能帮助别人。

答案 1 :(得分: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)

由于它是一个多选过滤器,你必须在数组中提供过滤器值。

答案 2 :(得分:0)

我已经在数据表的初始化完成事件中解决了jQuery的问题。

$("#yadcf-filter--kt_datatable-28").val("Active");
$("#yadcf-filter--kt_datatable-28").trigger("change");