0
我設法用按鈕單擊重置列,但表不刷新。Jquery DataTable重置多個搜索列
例如,假設表格上有10條記錄,我搜索2個不同的列,以便表格現在顯示2條記錄。
如果我點擊重置按鈕,它會清除文本,但它仍然只在表格上顯示2條記錄。如果我然後輸入任何東西到輸入字段進行搜索,它會顯示所有10條記錄。
爲什麼我必須鍵入一些東西,是否應該在點擊按鈕後重置表格?
<script>
$(document).ready(function() {
var table = $('#everyonesTable').DataTable({
colReorder: true,
stateSave: true,
"lengthMenu": [
[10],
[10]
],
scrollX: true,
scrollCollapse: true,
paging: true,
fixedColumns: true,
dom: ' <"top"B>rt<"bottom"fpi><"clear">',
buttons: [{
"extend": 'colvis',
"collectionLayout": 'fixed four-column'
}],
});
new $.fn.dataTable.Buttons(table, {
buttons: [{
text: 'Clear Filters',
action: function(e, dt, node, config) {
$("[data-index='1']").val('');
$("[data-index='2']").val('');
$("[data-index='3']").val('');
var datatable = $('#everyonesTable').dataTable().api();
$.get('myUrl', function(newDataArray) {
datatable.clear();
datatable.rows.add(newDataArray);
datatable.draw();
});
}
},
{
text: 'Reset Columns',
action: function(e, dt, node, config) {
table.colReorder.reset();
}
}
]
});
table.buttons(1, null).container().appendTo(
table.table().container()
);
columnDefs: [{
targets: 1,
render: function(data, type, row) {
return type === 'display' && data.length > 5 ?
data.substr(0, 5) + '…' :
data;
}
}]
$(table.table().container()).on('keyup', 'tfoot input', function() {
table
.column($(this).data('index'))
.search(this.value)
.draw();
});
});
</script>
相同的結果,原來的問題 –
奇怪...嘗試table.fnFilterClear(); – Simon