这是一个JSFiddle:https://jsfiddle.net/5sgc03my/。我有一个带有两个YADCF过滤器的DataTable:
var oTable = $('#example').DataTable({
"serverSide": true,
"ajax": {"url": "/platform/activities/?format=datatables",
"dataSrc": function(json){
yadcf_data_1 = json.options.activity_type
console.log(yadcf_data_1)
return json.data;
}
},
});
console.log(yadcf_data_1)
yadcf.init(oTable,
[
{
column_number : 0,
filter_type: "range_date",
},
{
column_number : 1,
filter_type: "select",
select_type: "select2",
},
/platform/activities/?format=datatables
返回以下响应:
{"recordsTotal":23286,"recordsFiltered":23286,
"data":[{"id":104,"activity_type":"Option 1",}],
"draw":1,
"options":{"activity_type":[{"label":"Option 1","value":1},
{"label":"Option 2","value":2},]}}
当前,activity_type
列(第1列)的过滤器仅返回Option 1
,因为这是表中所有可用的内容。因此,我想将过滤器指向Ajax响应的activity_type
部分中的options
数组。我知道可以为每个过滤器设置data
选项,但是我不确定如何将其指向key:value数组。当我将console.log(yadcf_data_2);
放在DataTable结构之外时,它只打印undefined
。这是在ajax函数中的控制台调用之前打印的。
如何将YADCF绑定到activity_type
数组?
答案 0 :(得分:0)
看看yadcf showcase server page,您应该将yadcf_data_0 / yadcf_data_1
和recordsTotal
/ data
一起发送
您还可以在yadcf代码中调试xhr event,以查看发生了什么情况
//如果要使用值填充选择/自动完成过滤器
///您必须将以下属性yadcf_data_0 / yadcf_data_1 /等等添加到当前JSON中
///其中每个属性都包含一个字符串列表
//例如:
//“ yadcf_data_0”:[“ KHTML”,“ Webkit”,“ Trident”,“ Misc”,“其他浏览器”,“ Tasman”,“ Presto”,“ Gecko”],
//“ yadcf_data_1”:[“ Nintendo DS浏览器”,