Reset всего страниц в jQuery pagination plugin
Я использую TwbsPagination plug-in для отображения подкачки в моем приложении. Он отлично работает, когда мы устанавливаем размер страницы при инициализации. Однако, основываясь на результатах поиска, я хочу, чтобы reset общее количество страниц.
Когда я пытаюсь использовать
$('#pagination').twbsPagination({totalPages:10});
он не сбрасывает отображаемые итоговые страницы.
Ответы
Ответ 1
А, мне удалось получить эту работу по-другому. Поскольку я использую это совместно с JQGrid, я выбрал loadComplete событие для исправления моего кода. Вот шаги:
1.Создание DIV для удерживания кнопок поискового вызова (управления двумя)
<div id="paginationholder"></div>
2.Оценка локальной переменной js для хранения текущей страницы
var currentPage=1;
3.Указать номер страницы перед AJAX JQgrid
beforeRequest: function () {
var postData = grid.jqGrid('getGridParam', "postData");
postData.page = currentPage;
postData.rows = $("#rows").val();
}
4. Восстановите элемент управления разбиением на страницы loadComplete. Когда пользователь нажимает на страницу, я обновляю номер страницы (currentPage
) и перезагружая сетку.
loadComplete: function (data) {
$('#paginationholder').html('');
$('#paginationholder').html('<ul id="pagination" class="pagination-sm"></ul>');
$('#pagination').twbsPagination({
startPage: data.page,
totalPages: data.total,
visiblePages: 5,
onPageClick: function (event, page) {
currentPage = page;
grid.trigger('reloadGrid');
}
});
}
Ответ 2
Я столкнулся с той же проблемой, я искал решение, но ничего не нашел. Поэтому, проанализировав код script, я узнаю, что этот script использует метод .data(), чтобы сохранить состояние отображения разбивки на страницы, и мне удалось сделать это явно.
.data(): хранить произвольные данные, связанные с согласованными элементами, или возвращать значение в названном хранилище данных для первого элемента в наборе согласованных элементов.
ref: http://api.jquery.com/data/
Решение reset разбиения на страницы.
вам просто нужно позвонить перед вашей "реализацией списка" или "привязкой данных" funciion/method
$( '# пагинация') пусто();.
$('# pagination'). removeData ( "twbs-pagination" );
. $( '# пагинация') отвязать ( "страницы" );
и это будет reset просматривать данные состояния разбивки на страницы. ("twbs-pagination" - это ключ состояния представления).
Надеюсь, что это поможет.
Ответ 3
Вы можете использовать destroy
. См. здесь.
Итак:
$('#pagination').twbsPagination('destroy');
Затем повторите инициализацию:
$('#pagination').twbsPagination({totalPages:5});
Fiddle
Ответ 4
Прочитайте исходный код twbs-pagination
здесь сообщает, почему вы не смогли reset общая страница:
var data = $this.data('twbs-pagination');
if (!data) $this.data('twbs-pagination', (data = new TwbsPagination(this, options) ));
Viewstate param twbs-pagination существует, поэтому вы не можете повторно выполнить рендеринг.
здесь является решением для удаления viewstate:
TwbsPagination.prototype = {
destroy: function () {
this.$element.empty();//remove child nodes
this.$element.removeData('twbs-pagination');//remove viewstate
this.$element.off('page');//unbind $(this) node from page
return this;
},
Итак, вы можете вызвать метод destroy
@Robin Carlo Catacutan
ИЛИ вручную выполнить внутренний метод @Vipin Kohli