我使用数据表实现了下拉过滤器。
网页文件
<select id='filter'>
<option value>Show All</option>
<option value='1'>one</option>
...
<option value='10'>ten</option>
</select>
<table id='table'>
...
</table>
爪哇语
var table = $("#table").DataTable();
$("#filter").change(function(){
var filterValue = $(this).selectedOptions[0].label;
if ( filterValue == '' ){
// **Show All Functionality**
} else {
table.column(2).search(filterValue).draw();
}
});
如果我选择一到十,它工作正常,但我想在应用过滤器后再次显示所有内容。
有什么功能可以这样做吗?
谢谢。
您需要在搜索空字符串(应返回所有行)后再次绘制表格: table.search('').draw();
如果这有效,您可以摆脱if
子句并只做:
$("#filter").change(function() {
table.search($(this).val()).draw();
});
您只需要在代码中进行一些小的更改,如下所示:
<option value='0'>Show All</option> // Set value as 0 for "Show All" option
var table = $("#table").DataTable();
$("#filter").change(function(){
var filterValue = $(this).val();
if ( filterValue == '0' ){ // Check for show all option
table.search(filterValue).draw();
} else {
table.search(filterValue).draw();
}
});