Панель поиска в jqGrid

Цикл статей «Документация jqGrid на русском».

Следующая статья — «Пользовательский поиск в jqGrid».
Предыдущая статья — «Настройки поиска в jqGrid».

Этот метод создаёт элементы ввода фильтров под заголовками столбцов в таблице. При изменении размеров столбцов элементы ввода тоже изменяют свой размер в соответствии с новой шириной.

Метод использует свойство url в таблице для осуществления поиска на сервере. При активации поиска массив «имя:значение» отправляется на сервер. Этот массив добавляется к postData. Отправляются только поля, содержащие значение. При очистке формы поиска значения удаляются из массива postData. При отправке на сервер мы пробуем передать не name, а index из colModel. Если index не найден, то используется свойство name. В дополнение параметр _search=true добавляется к отправляемым данным.

Если свойство stringResult установлено в true, то данные, отправляемые на сервер, являются строкой, и структура данных та же, что и при «Расширенном поиске в jqGrid».

Установка

Для того чтобы использовать этот метод модуль Custom module должен быть выбран при скачивании jqGrid.

Соглашение о вызове

или с помощью нового API:

Где:

  • 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
Включает/выключает панель поиска.

Использование дополнительных методов

Методы, перечисленные выше, должны использоваться так:

 

Цикл статей «Документация jqGrid на русском».

Следующая статья — «Пользовательский поиск в jqGrid».
Предыдущая статья — «Настройки поиска в jqGrid».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *