#php #jqgrid #pagination
#php #jqgrid #разбивка на страницы
Вопрос:
У меня есть jqgrid, показывающий всего 117 записей по 50 строк на страницу (число строк равно 50). Когда я смотрю на нижний пейджер, он правильно сообщает «Просмотр 1-50 из 117» для первой страницы, «Просмотр 51-100 из 117» для второй и так далее.
Если я выполняю поиск (одиночный поиск), возвращающий, например, 63 записи, соответствующие фильтрам, я ожидаю прочитать внизу первой страницы что-то вроде «Просмотр 1-50 из 63» (и в примерах jqGrid это то, что происходит). В моем случае, даже если записей в сетке 63 после операции поиска, нижний пейджер всегда показывает «Просмотр 1-50 из 117», но, очевидно, на первой странице всего 50 записей, а на второй — 13.
Я просмотрел документацию и примеры, и кажется, что то, чего я пытаюсь достичь, будет поведением по умолчанию… это ошибка? Я использую jqGrid 4.2.0
Спасибо
Комментарии:
1. Что
datatype
вы используете? Используете ли выloadonce: true
или получаете данные (или фильтруете данные) с сервера?2. Спасибо за ваш отзыв, я использую тип данных json и получаю / фильтрую данные с сервера
Ответ №1:
Если вы используете datatype: 'json'
и не используете эту опцию loadonce: true
дополнительно, значит, вы реализовали фильтрацию данных на стороне сервера. Если _search
параметр из запроса сервера имеет true
значение, сервер должен выдать ответ на основе параметра фильтра. В этом случае вы должны поместить в records
часть ответа JSON не общее количество отфильтрованных записей. Я полагаю, что вы всегда размещаете только общее количество нефильтрованных записей.
Комментарии:
1. Да, вы правы. В серверном скрипте я использую «записи» с результатом выбранного количества, и это всегда 117 (общее количество). Есть ли способ решить проблему? Я должен работать на стороне сервера или это можно решить каким-то другим способом?
2. ХОРОШО, решается очень легко путем добавления предложения where к запросу postgres в php-скрипте на стороне сервера. Спасибо за ваше предложение, Олег, это помогло мне разобраться в проблеме!