Я использую таблицы данных для отображения списка событий разных типов.Помимо глобального текстового поиска по умолчанию мне нужно: 1. отфильтровать список по типу события 2. отфильтровать список по диапазону дат (показать только сегодня -> бесконечность) 3. сохранить состояние таблицы для текущего сеанса.
Состояние сохраняется как ожидалось за исключением для поиска в диапазоне дат, который всегда сбрасывается.Я что-то упустил или пользовательские функции поиска выходят за рамки сохранения состояния?Вот соответствующий код в jQuery:
Кулак Я добавляю свою собственную функцию поиска с помощью предоставленного метода.Это работает, за исключением того, что его состояние не сохраняется
// Extend search()
var threshold_timestamp = xxxxxxxxxxxx // set for beginning of today)
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex) {
var timestamp = parseInt(data[1]); // event date timestamp
if (timestamp > threshold_timestamp) {
return true;
}
return false;
}
);
Затем я добавляю прослушиватели для select
, используемого для переключения между параметрами типа события ('', 'Event', 'Sports', 'Dance'...) и пользователь кнопки для включения / выключения фильтра диапазона дат
$('#filter-by-type').on('change', function() {
table.columns(0).search( $(this).val() ).draw();
});
$('#dt-history').on('click', function() {
// Logic to toggle threshold_timestamp between 0 or value
table.draw();
});
Затем я вызываю DataTables
var table = $('#example').DataTable( {
ajax: "datasource.json",
stateSave : true,
stateDuration: -1,
columns: [
{ data: "type"}, //str as 'Sport','Dance'
{ data: "date"} // int as 1528572000
]
});
Мне удалось почесать голову в сторону и «сохранитьпоиск по дате "используя localalstorage, но это взломать.При загрузке страницы я запускаю нажатие кнопки, чтобы выполнить поиск, поэтому изначально таблицы кажутся пустыми, появляется сообщение «Нет данных в таблице», а затем отображаются отфильтрованные результаты.Как второй взлом я подавлю это сообщение, чтобы, когда действительно не будет данных ... не будет сообщения :(