Цикл статей «Документация jqGrid на русском».
Следующая статья — «Пользовательский поиск в jqGrid».
Предыдущая статья — «Настройки поиска в jqGrid».
Этот метод создаёт элементы ввода фильтров под заголовками столбцов в таблице. При изменении размеров столбцов элементы ввода тоже изменяют свой размер в соответствии с новой шириной.
Метод использует свойство url в таблице для осуществления поиска на сервере. При активации поиска массив «имя:значение» отправляется на сервер. Этот массив добавляется к postData. Отправляются только поля, содержащие значение. При очистке формы поиска значения удаляются из массива postData. При отправке на сервер мы пробуем передать не name, а index из colModel. Если index не найден, то используется свойство name. В дополнение параметр _search=true добавляется к отправляемым данным.
Если свойство stringResult установлено в true, то данные, отправляемые на сервер, являются строкой, и структура данных та же, что и при «Расширенном поиске в jqGrid».
Установка
Для того чтобы использовать этот метод модуль Custom module должен быть выбран при скачивании jqGrid.
Соглашение о вызове
1 2 3 |
... jQuery("#grid_id").filterToolbar(options); ... |
или с помощью нового API:
1 2 3 |
... jQuery("#grid_id").jqGrid('filterToolbar',options); ... |
Где:
- grid_id — id уже инициализированной таблицы
- options — объект, содержащий настройки. Смотрите ниже
Эта команда создаст элементы поиска над колонками, под заголовками колонок.
Этот метод использует определения из colModel. Смотрите статью «Настройки поиска в jqGrid».
Список доступных свойств в методе filterToolbar:
Свойство: autosearch
Тип: boolean
Поиск осуществляется в соответствии со следующими правилами: для элемента text при нажатии клавиши Enter при вводе значения осуществляется поиск, для элемента select поиск осуществляется при смене значения. Свойство search в таблице устанавливается в true, и осуществляется AJAX-запрос.
По умолчанию: true
Свойство: beforeSearch
Тип: function
Событие, возникающее перед поиском. Вызывается перед осуществлением поиска. Если обработчик события вернёт true, то поиск не происходит. В этом случае вы можете построить свои собственные параметры поиска и вызвать trigger (обновление) таблицы с ними. Любое другое значение осуществляет поиск.
По умолчанию: null
Свойство: afterSearch
Тип: function
Событие, возникающее после поиска.
По умолчанию: null
Свойство: beforeClear
Тип: function
Событие, возникающее перед очисткой введённых значений (например, при вызове clearToolbar). Оно вызывается перед очисткой данных из элементов поиска. Если событие вернёт true, то очистка не происходит. В этом случае вы можете установить свои параметры поиска и вызвать загрузку данных. Любое другое значение вызывает загрузку данных без фильтра.
По умолчанию: null
Свойство: afterClear
Тип: function
Вызывается после очистки введённых значений.
По умолчанию: null
Свойство: searchOnEnter
Тип: boolean
Определяет, как будет применяться поиск. Если это свойство равно true, то смотрите свойство autosearch. Если это свойство равно false, то поиск осуществляется сразу же при вводе какого-либо символа.
По умолчанию: true
Свойство: stringResult
Тип: boolean
Определяет способ отправки данных при осуществлении поиска. Если это свойство равно false, то данные отправляются в виде пар «ключ:значение». Если это свойство установлено в true, то данные отправляются так же, как в методе searchGrid. Смотрите статью «Расширенный поиск в jqGrid» раздел «Свойства»..
По умолчанию: false
Свойство: groupOp
Тип: string
Это свойство имеет смысл только при свойстве stringResult равном true и определяет группировку операций. Может иметь значения «AND» или
"OR". Смотрите статью «Расширенный поиск в jqGrid» раздел «Свойства».
По умолчанию:
"AND"
Свойство: defaultSearch
Тип: string
Свойство определяет оператор поиска по умолчанию при осуществлении поиска. Если какое-либо корректное значение установлено, то оно будет использоваться как оператор по умолчанию для всех полей. Смотрите массив sopt в статье «Настройки поиска в jqGrid», чтобы узнать доступные значения.
По умолчанию:
"bw"
Свойство: searchOperators
Тип: boolean
Если установлен в true, то разрешает пользователю выбрать операцию при поиске. Иконка для выбора операций создаётся рядом с полем поиска. В этом случае доступные операции настраиваются в свойстве sopt в searchoptions в colModel.
По умолчанию: false
Свойство: operandTitle
Тип: string
Это свойство имеет смысл только при searchOperators равном true. Эта строка появляется при нависании курсора мышки над кнопкой операции. Оно может быть переопределено свойством searchtitle в searchoptions в colModel.
Текст по умолчанию для английского языка — “Click to select search operation”.
Свойство: operands
Тип: object
Краткое название операции, отображаемое при нажатии кнопки операции.
Свойство: odata
Тип: object
Определяет длинный текст для операций поиска. Объект по умолчанию находится в языковом файле и может быть найден в $.jgrid.search.odata. Значения по умолчанию для английского языка:
[{ oper:’eq’, text:’equal’},{ oper:’ne’, text:’not equal’},{ oper:’lt’, text:’less’},{ oper:’le’, text:’less or equal’},{ oper:’gt’, text:’greater’},{ oper:’ge’, text:’greater or equal’},{ oper:’bw’, text:’begins with’},{ oper:’bn’, text:’does not begin with’},{ oper:’in’, text:’is in’},{ oper:’ni’, text:’is not in’},{ oper:’ew’, text:’ends with’},{ oper:’en’, text:’does not end with’},{ oper:’cn’, text:’contains’},{ oper:’nc’, text:’does not contain’}]
Свойство sopt в searchoptions может быть использовано для установки операторов для конкретного поля в colModel.
При создании панели поиска добавляются дополнительные методы:
Метод: triggerToolbar
При вызове этого поиска осуществляется поиск, свойство search в таблице становится равным true, и AJAX-запрос отправляется на сервер.
Метод: clearToolbar
Очищает параметры поиска и отправляет запрос с search=false.
Метод: toggleToolbar
Включает/выключает панель поиска.
Использование дополнительных методов
Методы, перечисленные выше, должны использоваться так:
1 2 3 |
... var sgrid = $("#grid_id")[0]; sgrid.triggerToolbar(); |
Цикл статей «Документация jqGrid на русском».
Следующая статья — «Пользовательский поиск в jqGrid».
Предыдущая статья — «Настройки поиска в jqGrid».