我有一个jquery datatable,并使用外部过滤器功能根据类
过滤一些行$.fn.dataTable.ext.search.push(
function(oSettings, data, dataIndex) {
if (oSettings.nTable != document.getElementById( 'bt-datatable' )) {
return true
}
var rowNode = $(table.row(dataIndex).node());
if (rowNode.hasClass('def-class') || rowNode.hasClass('abc-class')) {
return rowNode;
}
}
);
table.draw();
现在,过滤器的工作正常,它根据Def-Class和ABC类过滤出来。但是我不能只收回此功能已经过滤的所有行。我想在点击事件上还原行。
这是我要做的事情的版本。我的一些标签等不同,因为我在现有代码上使用了它。我将按钮放在表格中。
$(function () {
// global variable for determining if the class should be filtered
var filterClass = true;
$.fn.dataTable.ext.search.push(
function (oSettings, data, dataIndex) {
if (oSettings.nTable != document.getElementById('tblTab2') || filterClass == false) {
return true
}
// I did it slightly different here but it does the same thing.
var rowNode = $($(oSettings.nTable).DataTable().row(dataIndex).node());
if (rowNode.hasClass('def-class') || rowNode.hasClass('myclass')) {
return rowNode;
}
}
);
$('#tblTab2').DataTable({
dom: 'tB', buttons: [{
text: "Filter", action:
function (e, dt, node, config) { filterClass = !filterClass; dt.draw(); }
}]
});
});