DataTables неправильно пейджинг с PopstateJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 DataTables неправильно пейджинг с Popstate

Сообщение Anonymous »

Я использую данные DataTables с обработкой сервер . На Popstate таблица перерисована с загруженными значениями. Все работает хорошо, за исключением одной проблемы: когда я перехожу из состояния, где страница для загруженного состояния недоступна, она не будет загружать правильную страницу для загруженного состояния, если это имеет смысл. < /P>
Так, например: < /p>
  • Если я нахожусь в состоянии 2 или более доступной, а затем нагрузку на кнопку «обратно» к кнопке «обратно» к кнопке < /em> на нагрузке. 2.
  • Если я нахожусь в состоянии с доступной только 1 страницей, а затем нажмите кнопку «назад» в состояние на страница 2, она загрузит страницу 1.
: я реализую, что это из -за этого на странице ()
: bloate>



: bloate>
. /> Обратите внимание, что если вы попытаетесь отобразить страницу, которая не существует, используя формат установления этого метода, DataTables не принесет ошибку, а скорее сбросит пейджин на первую страницу. Draw () , это приводит к проблеме, которую я описываю. Похоже, нет способа принудить DataTables в любом случае перейти на страницу, поэтому единственным вариантом было бы нарисовать дважды.
Вот (упрощенный) код:
setState = function() {
let state = history.state || {}, url = new URL(location.href.split("?")[0]);

// Get new state
state["table"] = {
"search": myTable.search(),
"order": getTableOrder(),
"page": myTable.page()+1,
"length": myTable.page.len(),
};

// Construct params
...

console.log("set: "+state["table"]["page"]);

// Replace/Push state
if (url.toString() == location.href) history.replaceState(state, ""); // Prevent duplication of history item
else history.pushState(state, "", url);
}

$(document).ready(function() {
myTable.on("draw", function() {
setState();
saveTableOrder(); // save to localStorage
saveTableLength(); // save to localStorage
});

$(window).on("popstate", function() {
console.log("pop: "+loadTablePage());

myTable
.search(loadTableSearch()) // load from history.state
.order(loadTableOrder()) // load from history.state or localStorage
.page.len(loadTableLength()) // load from history.state or localStorage
.page(loadTablePage()-1) // zero-indexed; load from history.state
.draw(false); // same result with "full-hold" argument
});
});
< /code>
В примере 1 это возвращает (как и ожидалось): < /p>
pop: 2
set: 2
< /code>
В примере 2 это возвращает (не как ожидалось): < /p>
pop: 2
set: 1


Подробнее здесь: https://stackoverflow.com/questions/794 ... h-popstate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • DataTables неправильно пейджинг с Popstate
    Anonymous » » в форуме Jquery
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • DataTables неправильно пейджинг с Popstate
    Anonymous » » в форуме Jquery
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • DataTables неправильно пейджинг с Popstate
    Anonymous » » в форуме Jquery
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • DataTables неправильно пейджинг с Popstate
    Anonymous » » в форуме Jquery
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • DataTables неправильно пейджинг с Popstate
    Anonymous » » в форуме Jquery
    0 Ответы
    199 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Jquery»