我设置了datatables大约10列,其中两列在点击列标题时进行自定义过滤。
我想更改列标题以反映当前处于活动状态的过滤器。
要做到这一点,我想我需要设置fnDrawCallback并查看table.fnSettings()返回的值
我目前的代码,修剪了这个问题的基本要点:
var table = $('#units').dataTable({
"aaSorting": (popSearch) ? [[8,"asc"]] : [],
"aoColumns":[{ "bSortable": false },
{ "bSortable": false },
{ "asSorting": [ "", "on", "off", "occ", "none" ] },
null,
null,
{ "asSorting": [ "", "revised", "new" ] },
null,
null,
{ "bSortable": false },
{ "bSortable": false }
],
"oSearch": {"sSearch": searchString},
"sAjaxSource": "/system/units/data.php?1.4.3"
},
"fnDrawCallback": function() {
/* tweak column headers according to the asSorting value */
}
});
asSorting
数组中的aoColumns
数组显示了可应用于输入数据表的数据的不同过滤器列表。如果单击第三列标题(Status),我希望其文本与发送的数据相匹配(如果发送空字符串,则返回“status”)。过滤效果很好;我只想让标题反映应用的过滤器。
在Datatables fnDrawCallback
函数中,我如何知道为列排序发送了什么值?
答案 0 :(得分:1)
要启用对哪个列进行排序,并在视觉上看到它,您应该做的就是添加
"bSortClasses": true,
到您的数据表脚本。如:
"aaSorting": (popSearch) ? [[8,"asc"]] : [],
"bSortClasses": true,
...
您应该看到哪个列被用作分拣机。 :)