Использование бесплатной версии jqGrid (версия 4.15.6) для отображения самой базовой информации о счетах-фактурах (т. е.: дата создания, срок оплаты, клиент, общая сумма, статус). В сетке счетов-фактур отображается только несколько соответствующих столбцов, потому что нет необходимости показывать больше. На самом деле существует множество других полей, связанных со счетом-фактурой, которые не отображаются. Я хотел бы предложить конечным пользователям возможность фильтровать сетку на основе множества других параметров, которые просто не являются частью содержимого сетки.
Я знаю, что jqGrid предлагает встроенный поиск, и вы можете легко просто добавить скрытые столбцы со всеми данными, но я чувствую, что это не очень хорошо для нас — счета-фактуры содержат много данных — данные, которые не обязательно присутствуют только в таблица базы данных счетов-фактур. Мы хотим, чтобы сетка предоставляла множество других параметров фильтрации помимо базовых данных счета, но мы НЕ хотим использовать встроенные параметры фильтра. Вместо этого я хотел бы использовать отдельную HTML-таблицу с кучей полей поиска, которые наш код на стороне сервера знал бы, как вернуть). Когда кто-то решает вызвать внешний фильтр, мы хотим, чтобы сетка загружала все счета, соответствующие этому комбинированному фильтру. И если кто-то решит перемещаться с помощью кнопок пейджинга сетки, мы хотим, чтобы сетка продолжала использовать исходные параметры внешней фильтрации.
Надеюсь, это имеет смысл. Может быть, я просто слишком много думаю об этом, но я совершенно уверен, что сетка предназначена для использования встроенных инструментов фильтрации/поиска/диалога, и я так и не нашел, чтобы переопределить это поведение. На самом деле я использую более старый jqGrid, но это связано с использованием jQuery для полной ЗАМЕНЫ пейджера по умолчанию с пользовательским HTML и обработкой событий. Я никогда не мог понять это со старым jqGrid, поэтому решил написать его сам. Но этот код далеко не оптимален, и даже я знаю, что он подвергается серьезной критике. После обновления до 4.15.6 я хочу сделать это наилучшим образом и сохранить логику и практичность.
Я попытался использовать события beforeRequest() и onPaging() для изменения параметра 'url', думая, что если я изменю URL-адрес, я смогу изменить GET, чтобы включить все наши настраиваемые поля фильтрации. Кажется, что это не работает, так как URL-адрес НИКОГДА не меняется с первоначально определенного значения. Журнал консоли показывает запуск событий, но не изменяет URL-адрес. Кроме того, сетка ВСЕГДА передает на сервер свое собственное поле страницы, поле _search и т. д., поэтому сервер НИКОГДА не видит запрос фильтра.
Как определить свою собственную фильтрацию в сочетании с загрузчиком страниц и при этом использовать преимущества встроенных событий страниц? Что мне не хватает?
**** УДАЛЕННЫЙ КОД, КОТОРЫЙ БЫЛ ДОБАВЛЕН К ВОПРОСУ, НЕ ОТНОСЯЩЕМУСЯ К ИСХОДНОМУ ВОПРОСУ *********