我在我的网站上使用数据表和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://github.com/vedmack/yadcf
谢谢。
答案 0 :(得分:0)
<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");