Цикл статей «Документация jqGrid на русском».
Следующая статья — «Общие свойства редактирования в jqGrid».
Предыдущая статья — «Поиск по одному полю в jqGrid».
Расширенный поиск — это способ искать по нескольким полям сразу с разными условиями. Расширенный поиск и поиск по одному полю используют один и тот же метод, но отличаются настройками и отправляемыми данными.
Установка
Для того чтобы использовать этот метод, следующие модули должны быть включены при скачивании таблицы:Common, Form Edit, filter Plugin.
Соглашение о вызове
1 2 3 4 5 |
<script> ... jQuery("#grid_id").searchGrid( {multipleSearch:true,...} ); ... </script> |
Или с помощью нового API:
1 2 3 4 5 |
<script> ... jQuery("#grid_id").jqGrid('searchGrid', {multipleSearch:true,...} ); ... </script> |
Где
- grid_id — это id уже созданной таблицы
- multipleSearch:true — включает расширенный поиск
- … другие свойства устанавливается как пары «имя:значение»
Для установки более сложного поиска:
1 2 3 4 5 |
<script> ... jQuery("#grid_id").jqGrid('searchGrid', {multipleSearch:true,...} ); ... </script> |
- multipleGroup:true активирует более расширенное диалоговое окно, которое позволяет добавить более сложные групповые условия.
Обычно при вызове этого метода он отображает диалоговое окно и делает таблицу недоступной до тех пор, пока диалоговое окно не закроется.
Этот метод не является методом поиска по умолчанию в навигаторе. Для того чтобы сделать его методом по умолчанию, вы должны установить свойства по умолчанию, используя метод extend, или установить их в навигаторе в свойствах поиска.
В расширенном поиске пользователь может добавить любое количество условий для поиска.
Для добавления условия используется кнопка Add/Добавить.
Для удаления условия используется кнопка со знаком минус.
Свойства
Используются те же самые свойства, что и при поиске по одному полю.
Ниже мы рассматриваем только те свойства, которые связаны с расширенным поиском.
Как упоминалось выше, первое свойство —
multipleSearch:true — это свойство включает расширенный поиск.
Второй свойство —
sFilter — это свойство определяет имя для отправляемых данных. Значение по умолчанию — filters.
При отправке на сервер к url добавляется только один параметр (вместе с _search=true) — элемент filters.
Отправляемые данные могут выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 |
filters = { "groupOp":"OR", "rules":[{"field":"a.id","op":"eq","data":"1"}], "groups":[ { "groupOp":"AND", "rules":[{"field":"a.id","op":"eq","data":"2"}], "groups":[...] } ] } |
Отправляемые данные являются JSON-строкой со следующими свойствами:
- groupOp — определяет правила для поиска. Может быть "AND" или "OR". Это свойство может быть изменено пользователем с помощью элемента select рядом с кнопкой сброса. При выборе all (английский вариант, русский — «все») устанавливается "AND". При выборе any (русский — «любой») устанавливается "OR".
- rules — массив со следующими свойствами: field — содержит имя выбранного index (или name) из colModel, op — определяет условия поиска(смотрите sopt в свойствах), data — введённые данные для поиска.
- groups — множество других groupOp, для определения составного поиска.
Цикл статей «Документация jqGrid на русском».
Следующая статья — «Общие свойства редактирования в jqGrid».
Предыдущая статья — «Поиск по одному полю в jqGrid».