Пользовательский поиск в jqGrid

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

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

Этот метод может быть вызван, для того чтобы построить пользовательскую форму поиска для таблицы.

Этот метод использует свойство url в таблице для осуществления поиска на сервере.

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

Установка

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

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

Форма поиска сначала объявляется в HTML и располагается над или под определением таблицы, как вам больше нравится.

и затем:

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

Где:

  • grid_id — это id таблицы, к которой применяется поиск.
  • options — это объект с настройками (смотрите ниже).

Свойства объекта настроек:

Свойство: gridModel
При установке в true, для построения поиска используются свойства из colModel: name, index, edittype, editoptions, search.
Дополнительные параметры могут быть могут быть установлены в colModel специально для этого метода. Эти параметры:
defval — значение по умолчанию для поля поиска, будет установлено в качестве первоначального поиска.
surl — верно только для edittype:'select'. Адрес (url), из которого будет браться уже построенный элемент select. То есть ожидается следующий HTML:
<select><option value='val1'> Value1 </option><option value='val2'> Value2 </option><option value='valn'> ValueN </option></select>
Только поля с search: true добавляются на форму. Скрытые элементы не добавляются.
Если gridModel равно false, то нужно построить filterModel (смотрите ниже) для осуществления поиска.
По умолчанию: false

Свойство: gridNames
Это свойство работает только тогда, когда свойство gridModel равно true. Если установлено в true, то мы используем имена из colNames как надписи для полей поиска.
По умолчанию: false

Свойство: gridToolbar
Устарело. Используйте filterToolbar.
По умолчанию: false

Свойство: filterModel
Модель фильтра должна использоваться при gridModel равном false.
filterModel [{label:'LablField', name: 'colname', stype: 'select', defval: 'default_value', surl: 'someurl', sopt:{optins for the select}},
label — надпись для поля (текстовое описание)
name — имя колонки. Должно быть равно полю name из colModel. Обратите внимание, что мы ищем по index этой колонки.
stype — тип элемента ввода. Может быть 'text' или 'select'.
defval — значение по умолчанию для элемента ввода в форме поиска.
surl — используется только при stype равном ‘select’. Это url, из которого берётся уже построенный элемент select. Ожидается следующий HTML:
<select><option value='val1'> Value1 </option><option value='val2'> Value2 </option><option value='valn'> ValueN </option></select>
sopt — свойства, которые могут быть применены к элементу, такие же, как и в editoptions из colModel.
По умолчанию: []

Свойство: formtype
Определяет тип формы. Может быть 'horizontal' или 'vertical'.
По умолчанию: "horizontal"

Свойство: autosearch
Если установлено в true, то поведение следующее:
Когда пользователь вводит какое-либо значение в элемент ввода, то он может нажать клавишу Enter для осуществления поиска.
Если используется select, то поиск осуществляется при смене значения в select.
Если установлено в false, то мы можем использовать кнопку для осуществления поиска.
По умолчанию: true

Свойство: formclass
Класс для формы.
По умолчанию: "filterform"

Свойство: tableclass
Класс для таблицы (таблица является дочерним элементом к элементу формы).
По умолчанию: "filtertable"

Свойство: buttonclass
Класс для кнопок.
По умолчанию: "filterbutton"

Свойство: searchButton
Надпись на кнопке поиска. (Обратите внимание, что надпись не берётся из языковых файлов, так как целью было отделить этот метод, чтобы он мог использоваться без jqGrid)
По умолчанию: "Search"

Свойство: clearButton
Надпись на кнопке очистки введённых значений.
По умолчанию: "Clear"

Свойство: enableSearch
Делает доступной/недоступной кнопку поиска.
По умолчанию: false

Свойство: enableClear
Делает доступной/недоступной кнопку очистки введённых значений.
По умолчанию: false

Свойство: beforeSearch
Событие, возникающее перед поиском.
По умолчанию: null

Свойство: afterSearch
Событие, возникающее после поиска.
По умолчанию: null

Свойство: beforeClear
Событие, возникающее перед очисткой введённых значений (например, при нажатии кнопки очистки).
По умолчанию: null

Свойство: afterClear
Событие, возникающее после очистки введённых значений.
По умолчанию: null

Свойство: url
Отдельный url для поиска.
По умолчанию: ''

Свойство: marksearched
При установке в true после поиска каждая колонка, к которой применён поиск, помечается — в левый верхний угол заголовка колонки добавляется маркер для обозначения, что эта колонка участвует в поиске. При очистке значений маркер исчезает.
Не применимо в версии 3.5.
По умолчанию: true

Дополнительные методы

При использовании filterGrid можно использовать два дополнительных, привилегированных метода:
triggerSearch — включает поиск в таблице,

clearSearch — очищает форму поиска и вызывает поиск с пустыми значениями или значениями по умолчанию.

 

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

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

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

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