Есть ли способ сохранить текущую страницу при сортировке столбцов jqgrid? - PullRequest
0 голосов
/ 10 октября 2011

Мой jqgrid содержит несколько страниц.Когда я сортирую любой столбец, страница сбрасывается до первого.

(Это верно и для filterToolbar, т.е. после вызова $ ("# my-grid") [0] .triggerToolbar ();)

Есть ли способ сохранить мою текущую страницу после сортировки / фильтрации?

РЕДАКТИРОВАТЬ:

На самом деле моя проблема немного сложнее.

Iсохраните настройки jqgrid (rowNum, page, filters и т. д.) в cookie.Когда я загружаю страницу в первый раз, я загружаю префы.Я использую технику из ответа Марка Б. (см. начальное значение по умолчанию панели инструментов фильтра jqGrid ), чтобы заполнить значения по умолчанию для моего фильтра.

Проблема: в этом случае страница всегда устанавливается на первое. (из-за вызова triggerToolbar) т.е. он не сохраняет состояние.

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

Я не совсем понимаю ваше требование.Если пользователь видел, например, несколько строк на второй странице, а затем щелкнул заголовок столбца, чтобы отсортировать столбец, сетка будет отсортирована.Данные, которые пользователь видел ранее, могут быть на любой странице.Поэтому я не понимаю, почему вы хотите удерживать текущую страницу, которая будет отображать совершенно другие данные, как это было раньше.

Если вам нужно удерживать страницу, вы можете сделать это следующим образом.Внутри loadComplete вы можете сохранить значение параметра page.Внутри обработчика событий onSortCol значение будет уже изменено на 1, но вы можете исправить его до значения, которое вы сохранили ранее.Я не проверял это, но думаю, что оно должно работать.

ОБНОВЛЕНО: Теперь я думаю, что понимаю вашу первоначальную проблему.Я думаю, вам следует выбрать другой способ, описанный здесь или здесь .Вам нужно просто сохранить в cookie значение postData и установить параметр search:true в jqGrid, если filters не пуст (или другой параметр фильтра зависит от используемых вами параметров).Таким образом, вы сможете восстановить не только фильтр, но и дополнительно значение page.Окончательное решение может немного зависеть от параметров jqGrid и параметров filterToolbar, которые вы используете.Так что если у вас возникнут проблемы с реализацией, вы должны включить больше кода, который вы используете.

0 голосов
/ 28 мая 2016

Я использую mvc с jqgrid, и это решение для меня:

$("#GridTable").jqGrid({
...
onSortCol:
            function () {

                var postpage = jQuery("#GridTable").getGridParam('postData');
                jQuery("#GridTable").setGridParam({ page: postpage.page });
           },
...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...