JQuery1.8 Datatables сохраняет состояние одним нажатием кнопки
У меня есть JSP с таблицей и двумя кнопками "домой" и "назад" в нем и импортировал jquery.datatable.js в нем.
При нажатии кнопки "домой" страница должна загружаться без пагинации или сохраненного фильтра. и по щелчку "назад" в таблице должны быть сохранены все фильтры и нумерация страниц.
Я попытался установить флаг "bStateSave" true при инициализации таблицы данных. Это всегда загружает таблицу с фильтром и нумерацией страниц.
Можно ли как-нибудь загрузить таблицу с сохраненным состоянием при нажатии кнопки "назад" и ее исходное состояние при нажатии кнопки "домой"
1 ответ
Для DataTables 1.10:
Ниже приведены функции API для DataTables 1.10, связанные с сохранением состояния:
государство()
Получить последнее сохраненное состояние таблицыstate.clear ()
Очистить сохраненное состояние таблицы.state.loaded ()
Получить состояние таблицы, которая была загружена во время инициализации.state.save ()
Запустить сохранение состояния.
Тебе нужно иметь stateSave: true
опция инициализации для включения сохранения состояния. Затем, когда пользователь нажимает кнопку "Домой", вы можете позвонить $('#example').DataTable().state.clear()
очистить сохраненное состояние.
Для таблиц данных 1.9 и более ранних версий:
К сожалению, нет прямого метода API для очистки сохраненного состояния.
Тебе нужно иметь bStateSave: true
опция инициализации для включения сохранения состояния.
Вариант 1: Использование document.cookie:
Ниже приведен взлом, предназначенный для очистки куки, который содержит данные о состоянии. Когда пользователь нажимает кнопку "Домой", вам необходимо выполнить приведенный ниже код. ВАЖНО: заменить example
с вашим идентификатором таблицы.
// Reset current state
document.cookie = name + 'SpryMedia_DataTables_' + 'example' + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
Вариант 2. Использование fnStateLoadParams:
В качестве альтернативы вы можете использовать функцию обратного вызова fnStateLoadParams, чтобы определить, когда загружать или игнорировать данные состояния. Определите при загрузке страницы, должно ли состояние загружаться или игнорироваться, назначая true
или же false
соответственно loadStateParams
переменная:
$(document).ready( function() {
$('#example').dataTable( {
"bStateSave": true,
"fnStateLoadParams": function (oSettings, oData) {
// Disallow state loading by returning false
var loadStateParams = false;
return loadStateParams;
}
});
});