jqgrid viewrecords обновляется после поиска

#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-скрипте на стороне сервера. Спасибо за ваше предложение, Олег, это помогло мне разобраться в проблеме!