Цикл статей «Документация jqGrid на русском».
Следующая статья — «Поиск по одному полю в jqGrid».
Предыдущая статья — «Панель поиска в jqGrid».
Этот метод может быть вызван, для того чтобы построить пользовательскую форму поиска для таблицы.
Этот метод использует свойство url в таблице для осуществления поиска на сервере.
При поиске на сервер отправляется массив вида «имя:значение». Этот массив добавляется к postData. Отправляются только поля, в которые были введены значения. При очистке формы поиска поля удаляются из postData. При отправке на сервер используется не name, а index из colModel. Если index не указан, то используется name. В дополнение к этому к отправляемым данным добавляется _search=true.
Установка
Для того чтобы использовать этот метод, модуль Custom module должен быть выбран при скачивании таблицы.
Соглашение о вызове и свойства
Форма поиска сначала объявляется в HTML и располагается над или под определением таблицы, как вам больше нравится.
1 |
<div id="mysearch"></div> |
и затем:
1 |
jQuery("#mysearch").filterGrid('#grid_id',options); |
или с помощью нового API:
1 |
jQuery("#mysearch").jqGrid('filterGrid','#grid_id',options); |
Где:
- 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 — включает поиск в таблице,
1 2 |
var sg = jQuery("#mysearch").filterGrid(...)[0]; sg.triggerSearch(); |
clearSearch — очищает форму поиска и вызывает поиск с пустыми значениями или значениями по умолчанию.
1 |
sg.clearSearch(); |
Цикл статей «Документация jqGrid на русском».
Следующая статья — «Поиск по одному полю в jqGrid».
Предыдущая статья — «Панель поиска в jqGrid».