我正在尝试使用
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)我的任何初始化选项是否缺失/错误?
我在他们的site上发现了类似的查询,但它对我没有帮助.
最佳答案 参考
https://datatables.net/forums/discussion/15952/afnfiltering-function-never-called#Comment_56134我假设自定义过滤功能永远不会用于服务器端处理模式.