我正在尝试对具有 AJAX 源的数据表使用全局过滤,如下所示:
var usertable = $("#userstable").dataTable({
"bProcessing": false,
"bJQueryUI": false,
"bAutoWidth": false,
"bServerSide": true,
"aLengthMenu": [[10, 30, 50, 100], [10, 30, 50, 100]],
"iDisplayLength": 30,
"sDom": '<"H"fl>t<"F"ip>',
"sAjaxSource": "fetchmyusers.php",
"sPaginationType": "full_numbers",
"fnDrawCallback": function( oSettings ) {
console.log('fnDrawCallback called');
}
});
数据表及其默认排序/过滤选项工作正常。现在我只想显示那些在特定时间段内注册的用户。为此,我从用户那里获取开始日期和结束日期的输入,然后单击锚点,我想根据该日期过滤用户。
相同的jquery代码是:
$("#customdatefilter").on('click',function(e) {
e.preventDefault();
usertable.fnDraw();
//console.log('redrawn');
});
然后我需要通过以下方式编写自定义过滤函数:
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
console.log('filtering..');
//filter data as per my input
return true;
//in some cases false
});
但这里的问题是这个自定义过滤器永远不会被调用。但是数据重绘回调执行成功。
1) 这种类型的自定义过滤是否适用于 AJAX 来源的数据表?
2)我的任何初始化选项是否丢失/错误?
我在他们的网站上找到了类似的查询,但对我没有帮助。