我想要做的是隐藏数据表中的记录/数据,以便默认情况下显示“表格中没有可用数据”。但是,当用户使用搜索功能时,它将显示匹配的记录。如果搜索和我的列过滤器中没有数据,则不会显示任何数据。简而言之,我只是希望我的记录不会显示为默认值。记录只应在搜索时显示。
设置deferLoading:0首先不加载数据,但是当我从搜索栏中删除信息时,记录仍会显示。
我的剧本:
$(document).ready(function(){
var dataTable = $('#example').dataTable({
dom: 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "../assets/swf/copy_csv_xls_pdf.swf",
"sRowSelect": "multi",
"aButtons": [
"select_all",
"select_none",
{
"sExtends": "collection",
"sButtonText": "Advance Tools",
"aButtons": [ "csv", "xls", "pdf","print" ]
}
]
},
bProcessing: true,
bServerSide: true,
bRegex:true,
"oLanguage" : {"sZeroRecords": "", "sEmptyTable": ""},
deferLoading: 0,
sAjaxSource: "server_processing.php"
});
});
答案 0 :(得分:1)
您可以使用自定义过滤器隐藏行,然后在用户执行搜索/清除搜索框时重置/设置此过滤器。
function hideRowsFilter() {
$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex) {
return false
})
dataTable.fnDraw();
}
function clearFilter() {
$.fn.dataTableExt.afnFiltering.pop();
dataTable.fnDraw();
}
初始化dataTable后,设置过滤器
hideRowsFilter();
根据用户输入重置/设置过滤器
$('.dataTables_filter input').on('keyup', function() {
if (this.value != '' ) {
clearFilter();
} else {
hideRowsFilter();
}
})
演示 - &gt;的 http://jsfiddle.net/zusz9a0n/ 强>
上面的代码和代码使用的是1.9.x,有些东西告诉我你正在使用1.9.x - 但它也适用于1.10.x.