Подтвердить что ты не робот

Reset всего страниц в jQuery pagination plugin

Я использую TwbsPagination plug-in для отображения подкачки в моем приложении. Он отлично работает, когда мы устанавливаем размер страницы при инициализации. Однако, основываясь на результатах поиска, я хочу, чтобы reset общее количество страниц.

Когда я пытаюсь использовать

$('#pagination').twbsPagination({totalPages:10});

он не сбрасывает отображаемые итоговые страницы.

4b9b3361

Ответ 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