jQuery dataTables:对应用了自定义筛选器的表进行排序会导致行消失
我对以下数据表使用自定义筛选jQuery dataTables:对应用了自定义筛选器的表进行排序会导致行消失,jquery,datatables,Jquery,Datatables,我对以下数据表使用自定义筛选 var table = $('#placeholder').DataTable({ "bJQueryUI":true, "bFilter": true, "bPaginate": true, "bLengthChange": false, "pageLength": 25, "bDeferRender": true, "bSortClasses": false, "data": {$data} // nette injected })
var table = $('#placeholder').DataTable({
"bJQueryUI":true,
"bFilter": true,
"bPaginate": true,
"bLengthChange": false,
"pageLength": 25,
"bDeferRender": true,
"bSortClasses": false,
"data": {$data} // nette injected
});
为了仅显示与第2列值相关的唯一行
var rows = [];
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) {
// Retrieve info for unique row filtering
// If value is set, then unique filtering is enabled
var filterUVal = parseInt($('#frm-filterForm-unique').val());
var columnDVal = data[2];
// Filter unique row
if (!isNaN(filterUVal)) {
if (~rows.indexOf(columnDVal)) {
return false;
} else {
rows.push(columnDVal);
}
}
return true;
});
如果我根据任何列进行排序,然后应用过滤器,那么它就工作了。但是,如果我首先应用自定义筛选器并根据任何列进行排序,那么所有行都会消失,并且我只看到空的数据表。这是因为
行
永远不会重置。想想看,最终行
将包含所有唯一的数据[2]
值,因此无论搜索词是什么,每一行都返回一个false
我相信您可以通过在绘图
处理程序中重置行
来克服这一问题:
$('#placeholder').on('draw.dt', function() {
rows = []
})