Свойства jqGrid

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

Следующая статья — «Свойства colModel в jqGrid».
Предыдущая статья — «Соглашения при работе с jqGrid».

Можно управлять внешним видом и поведением jqGrid с помощью свойств. Настраиваться может высота и ширина таблицы, тип данных для каждой колонки и многое другие.

Эти свойства устанавливаются в объекте настроек таблицы. Многие из  них указываются в виде пар «имя : значение», разделённых запятыми. Объект передаётся в качестве параметра при инициализации объекта jqGrid.

Доступные свойства объекта настроек перечислены ниже в алфавитном порядке. Некоторые имеют более подробное описание в других статьях. В таких случаях даны ссылки на эти статьи.

Некоторые свойства не могут быть изменены после создания таблицы. Значение в «можно менять» показывает, можно ли менять значение конкретного свойства. Также смотрите методы getGridParam и setGridParam для подробностей.

Некоторые свойства доступны только для чтения. Это означает, что их нельзя менять. Обычно они связаны с получением данных с сервера.

В нашем примере мы видели, что jqGrid должен загружать подходящий языковый файл для нормальной работы. Этот файл используется во всех модулях. Его основная задача — это обеспечение возможности работы с многими языками. В этом файле хранятся несколько объектов со свойствами и текстовыми строками.

Имя главного объекта jQuery.jgrid или коротко $.jgrid. Каждое свойство загружается в свой метод или в сам jqGrid. Свойства, загружаемые в jqGrid, берутся из статического объекта $.jgrid.defaults.

Английский вариант этих свойств выглядит так:

Другими словами, свойства recordtext, emptyrecords, loadtext и pgtext устанавливаются в таблицу этими значениями по умолчанию. Смотрите ниже, как вы можете переопределить эти значения одной строчкой для всех таблиц в вашем приложении.

Свойство: ajaxGridOptions
Тип: object
Это свойство позволяет  устанавливать глобальные настройки для AJAX-запросов. Обратите внимание, что это свойство позволяет переопределять все текущие настройки AJAX в таблице включая error, complete и beforeSend.
По умолчанию: пустой объект
Можно менять: Да

Свойство: ajaxSelectOptions
Тип: object
Это свойство позволяет устанавливать глобальные настройки   для элемента select, когда select строится на основе свойства dataUrl в editoptions или searchoptions.
По умолчанию: empty object
Можно менять: Да

Свойство: altclass
Тип: string
Второй класс стилей для полосатых таблиц. Это свойство корректно только при значении свойства altRows равного true.
По умолчанию: ui-priority-secondary
Можно менять: Да. Необходимо обновление таблицы.

Свойство: altRows
Тип: boolean
Делает таблицу полосатой (чётные и нечётные строки имеют разные стили).
По умолчанию: false
Можно менять: Да. Необходимо  обновление таблицы.

Свойство: autoencode
Тип: boolean
Кодирует символы в HTML при получении данных с сервера и отправке данных на сервер. Например, < будет заменено на &lt;.
По умолчанию: false
Можно менять: Да

Свойство: autowidth
Тип: boolean
Когда установлено в true, ширина таблицы автоматически вычисляется на основе ширины родительского элемента. Это делается только при инициализации таблицы. Чтобы менять ширину таблицы при изменении ширины родительского элемента, вам нужно написать свой код, используя метод setGridWidth.
По умолчанию: false
Можно менять: Нет

Свойство: caption
Тип: string
Заголовок таблицы. Будет отображаться над заголовками колонок. (см. «Как работает jqGrid»). Если пустая строка, то заголовок не будет отображаться.
По умолчанию: пустая строка
Можно менять: Нет. Есть метод.

Свойство: cellLayout
Тип: integer
Это свойство устанавливает отступ содержимого ячейки + границу ячейки. В обычной ситуации её не стоит менять. Но если были сделаны изменения в элементе td в файле css таблицы, то нужно изменить и это значение. Значение по умолчанию 5 означает выравниваниеСлева(2) + выравниваниеСправа(2) + границаСлева(1) = 5.
По умолчанию: 5
Можно менять: Нет.

Свойство: cellEdit
Тип: boolean
Разрешает (запрещает) редактирование содержимого ячейки. Смотрите «Редактирование ячейки в jqGrid».
По умолчанию: false
Можно менять: Да

Свойство: cellsubmit
Тип: string
Куда сохраняются значения ячейки. Возможные значения: 'remote' и 'clientArray' .  Смотрите «Редактирование ячейки в jqGrid».
По умолчанию: 'remote'
Можно менять: Да

Свойство: cellurl
Тип: string
URL для сохранения ячейки. Смотрите «Редактирование ячейки в jqGrid».
По умолчанию: null
Можно менять: Да

Свойство: cmTemplate
Тип: object
Набор свойств, переопределяющих свойства из colModel. Например, если вы хотите сделать возможность сортировки по всем колонкам, то можно указать это здесь только один раз, вместо указания этого свойства для каждой колонки в colModel.
По умолчанию: null
Можно менять: Нет

Свойство: colModel
Тип: array
Массив со свойствами для каждой колонки. Это наиболее важная часть таблицы. Смотрите полное описание «Свойства colModel в jqGrid».
По умолчанию: empty array
Можно менять: Нет

Свойство: colNames
Тип: array
Заголовки колонок. Количество элементов должно совпадать с количеством элементов в colModel.
По умолчанию: empty array[]
Можно менять: No

Свойство: data
Тип: array
Массив с локальными данными для вашей таблицы. Можно напрямую обращаться к этому свойству в случае, когда вы хотите загрузить массив данных. Это заменяет многократное обращение к более медленному методу addRowData.
По умолчанию: пустой массив
Можно менять: Да

Свойство: datastr
Тип: string
Строка с данными для случая, когда свойство datatype установлено в xmlstring или jsonstring.
По умолчанию: null
Можно менять: Yes

Свойство: datatype
Тип: string
В каком формате будут данные, которыми нужно заполнять таблицу. Возможные значения: 'xmlstring' (ожидаются данные в виде XML-строки, json (ожидаются данные в формате JSON), 'jsonstring' (ожидаются данные в виде JSON-строки), 'local' (ожидаются данные с клиентской части (в виде массива)), 'javascript' (ожидается javascript), function (пользовательская функция, возвращающая данные) или 'clientSide' (ожидается ручная загрузка данные в виде массива). Смотрите «Свойства colModel в jqGrid» и «Манипуляция данными в jqGrid».
По умолчанию: xml
Можно менять: Да

Свойство: deepempty
Тип: boolean
Это свойство должно быть установлено в true, если событие или плагин подключены к ячейке таблицы. Это свойство использует jQuery empty для строки и всех её дочерних элементов. Это уменьшает скорость, но предохраняет от утечек памяти. Это свойство должно быть установлено в true, если используются сортируемые строки/колонки.
По умолчанию: false
Можно менять: Да

Свойство: deselectAfterSort
Тип: boolean
Подходит только когда используется datatype : 'local' . Снимает выделение с выделенных строк после применения сортировки.
По умолчанию: true
Можно менять: Yes

Свойство: direction
Тип: string
Направление текста в таблице. По умолчанию 'ltr' (слева направо). При установке 'rtl' (справа налево) таблица автоматически меняет направление текста. Важно иметь в виду, что на одной странице мы можем иметь две (или более) таблицы, где одна таблица может иметь направление 'ltr' , а другая может иметь направление 'rtl' .  Это свойство работает только в Firefox 3.x и Internet Explorer >= 6 версии. Сейчас Safari, Google Chrome и Opera не поддерживают полностью смену направления на 'rtl' . Наиболее частая проблема в Firefox в том, что настройки браузера по умолчанию не поддерживают направление текста справа налево. В статье  «JqGrid поддержка языков с письмом справа-налево в Firefox» описана смена этой настройки.
По умолчанию: 'ltr'
Можно менять: Нет

Свойство: editurl
Тип: string
Определяет URL для режимов редактирования строки и редактирования в форме редактирования. Может быть установлено в clientArray, чтобы вручную отправлять данные на сервер. Смотрите «Редактирование строки в jqGrid».
По умолчанию: null
Можно менять: Да

Свойство: emptyrecords
Тип: string
Строка, которая будет отображаться в случае, когда в таблице нет записей. Это свойство имеет смысл, только когда viewrecords установлено в true.
По умолчанию: смотрите языковый файл
Можно менять: Да

Свойство: ExpandColClick
Тип: boolean
Когда установлено в true, таблица с деревом (смотрите treeGrid) разворачивается и сворачивается по клику в любом месте текста в колонке. В этом случае не нужно кликать точно на иконку.
По умолчанию: true
Можно менять: No

Свойство: ExpandColumn
Тип: string
Указывает, какая колонка (name из colModel) должна быть использована для развёртывания дерева. Если не установлено, то используется первая колонка. Имеет смысл только в случае, когда treeGrid установлено в true.
По умолчанию: null
Можно менять: No

Свойство: footerrow
Тип: boolean
Если установлено в true, то добавляется таблица с одной строкой ниже таблицы с записями и выше панели навигации. Количество колонок таблицы равно количеству колонок в colModel.
По умолчанию: false
Можно менять: No

Свойство: forceFit
Тип: boolean
Если установлено в true, и ширина какой-нибудь колонки изменена, то соседняя колонка (справа) изменится так, чтобы вся ширина таблицы была занята (например, уменьшение ширины колонки 2 на 30 пикселей увеличит ширину колонки 3 на 30 пикселей). В этом случае нет полосы горизонтальной прокрутки. Заметьте: Это свойство не совместимо со свойством shrinkToFit. Если shrinkToFit установлено в false, то forceFit игнорируется.
По умолчанию: false
Можно менять: Нет

Свойство: gridstate
Тип: string
Определяет текущее состояние таблицы (то есть, когда свойства hiddengrid, hidegrid и caption используются вместе). Может иметь два состояние: 'visible' и 'hidden' .
По умолчанию: visible
Можно менять: Нет

Свойство: gridview
Тип: boolean
В предыдущих версиях jqGrid, включая 3.4.X, чтение относительно больших данных (больше 100 строк) вызывало проблемы со скоростью. Причина в том, что для добавления каждой ячейки в таблицу мы применяли от 5-и до 6-и вызовов jQuery.  Сейчас эта проблема решена. Мы добавляем содержимое одной строки одним вызовом jQuery append. Результат впечатляющий — от 3-х до 5-и раз быстрее.  Каков был бы результат, если бы мы вставляли все данные за раз? Да, это можно сделать с помощью опции gridview (установите её в true). В результате таблица будет раз в 5-10 быстрее. Конечно, когда это свойство установлено в true, мы имеем некоторые ограничения. При установленном в true свойстве gridview мы не можем использовать treeGrid, subGrid, или событие afterInsertRow. Если вы не используете эти три свойства в таблицы, то вы можете установить это свойство в true и наслаждаться скоростью.
По умолчанию: false
Можно менять: Yes

Свойство: grouping
Тип: boolean
Включает группировку в таблице.Смотрите «Группировка данных в jqGrid».
По умолчанию: false
Можно менять: Да

Свойство: headertitles
Тип: boolean
Если это свойство установлено в true, то к заголовкам колонок добавляется атрибут title.
По умолчанию: false
Можно менять: Нет

Свойство: height
Тип: mixed
Высота таблицы. Может быть числом (количество пикселей) или процентами (только 100%) или значение 'auto' .
По умолчанию: 150
Можно менять: Нет. Есть метод.

Свойство: hiddengrid
Тип: boolean
Если установлено в true, то таблица изначально скрыта. Данные не подгружаются (запрос не отправляется) и отображается только заголовок таблицы. Когда происходит клик на кнопку показать/скрыть в первый раз, чтобы показать таблицу, запрос отправляется на сервер, данные загружаются, и показывается таблица. С этого момента мы имеем обычную таблицу. Это свойство имеет эффект только при непустом свойстве caption и свойстве hidegrid, установленном в true.
По умолчанию: false
Можно менять: Нет

Свойство: hidegrid
Тип: boolean
Включает/выключает показ кнопки показа/скрытия таблицы, которая показывается в правой части заголовка таблицы (смотрите «Как работает jqGrid») Имеет эффект только если свойство caption непустая строка.
По умолчанию: true
Можно менять: Нет

Свойство: hoverrows
Тип: boolean
Когда установлено в false, эффект при нахождении курсора мыши над строками таблицы отключён.
По умолчанию: true
Можно менять: Да

Свойство: idPrefix
Тип: string
Если установлено, то строка добавляется в качестве префикса к id при создании строки.
По умолчанию: empty
Можно менять: Да

Свойство: ignoreCase
Тип: boolean
По умолчанию поиск на клиенте зависит от регистра. Чтобы сделать локальный поиск и сортировку независимыми от регистра установите это свойство в true.
По умолчанию: false
Можно менять: Yes

Свойство: inlineData
Тип: empty object
Данные, которые будут добавлены к данным, отправляемым на сервер при редактировании строки.
По умолчанию: {}
Можно менять: Да

Свойство: jsonReader
Тип: array
Массив, описывающий структуры ожидаемых от сервера данных в формате JSON. Смортите «Манипуляция данными в jqGrid».
По умолчанию:
Можно менять: No

Свойство: lastpage
Тип: integer
Общее количество страниц, возвращённое запросом. Если вы используете функцию в качестве типа данных, your_grid.setGridParam({lastpage: your_number}) может быть использовано для указания максимального количества страниц для навигации.
По умолчанию: 0
Можно менять: No

Свойство: lastsort
Тип: integer
Только для чтения. Индекс последней колонки, по которой происходила сортировка. Индекс считается с 0.
По умолчанию: 0
Можно менять: No

Свойство: loadonce
Тип: boolean
Если этот флаг установлен в true, то таблица загружает данные с сервера только один раз (используя datatype). После первого запроса свойство datatype автоматически меняется на 'local' и все дальнейшие манипуляции происходят на стороне клиента. Функционал навигации по страницам (если есть) заблокирован.
По умолчанию: false
Можно менять: Нет

Свойство: loadtext
Тип: string
Текст, который появляется при загрузке и сортировке данных. Этот параметр расположен в языковом файле.
По умолчанию: Loading…
Можно менять: Нет

Свойство: loadui
Тип: string
Это свойство контроллирует, что нужно делать, когда AJAX-операция в процессе.
'disable' — убирает индикатор прогресса. В этом случае вы можете использовать свой собственный индикатор.
'enable' (default) — отображает текст из свойства loadtext (значение по умолчанию 'Loading…' ) в центре таблицы.
'block' — отображает текст из свойства loadtext и блокирует все действия с таблицей до тех по, пока AJAX-запрос не завершится. Заметьте, что это блокирует постраничную навигацию, сортировку и все другие действия в панели, если они есть.
По умолчанию: enable
Можно менять: Да

Свойство: mtype
Тип: string
Определяет тип запроса POST или GET.
По умолчанию: GET
Можно менять: Yes

Свойство: multikey
Тип: string
Это свойство имеет смысл только при установке свойства multiselect  в true. Определяет клавишу, которая должна быть нажата, когда мы делаем множественную выборку записей. Возможные значения: 'shiftKey' — пользователь должен нажать клавишу Shift, 'altKey' — пользователь должен нажать клавишу Alt, и 'ctrlKey' — пользователь должен нажать клавишу Ctrl.
По умолчанию: пустая строка
Можно менять: Да

Свойство: multiboxonly
Тип: boolean
Это свойство работает только при multiselect равном true. Когда multiselect установлено в true, клик в любом месте на строке выделяет строку, а когда multiboxonly тоже установлен в true,  множественный выбор происходит только при клике на checkbox (стиль Yahoo). Клик на другой строке (не на checkbox-е) снимает выделение со всех строк и выделяет эту строку.
По умолчанию: false
Можно менять: Да

Свойство: multiselect
Тип: boolean
Если этот флаг установлен в true, то множественная выборка разрешена. При этом добавляется новая колонка в левой части таблицы с checkbox-ами. Может использоваться с любым значением свойства datatype.
По умолчанию: false
Можно менять: Нет. Смотрите «jqGrid КАК СДЕЛАТЬ».

Свойство: multiselectWidth
Тип: integer
Определяет ширину колонки с checkbox-ами при включённой опции multiselect.
По умолчанию: 20
Можно менять: No

Свойство: multiSort
Тип: boolean
Установка этого свойства в true включает множественную сортировку. Свойство работает если свойство datatype равно 'local' . В случае когда данные берутся с сервера,  параметр sidx содержит строку для сортировки. Это разделённая запятыми строка в формате field1 asc, field2 desc…, fieldN. Обратите внимание, что последнее поле не имеет asc или desc. Направление сортировки должен быть взят из параметра sord.
Когда это свойство установлено в true поведение следующее. Первый клик на заголовке колонки сортирует колонку в зависимости от параметра firstsortorder в colModel или параметра таблицы sortorder. Следующий клик сортирует её в обратном порядке. Третий клик убирает сортировку по колонке.
По умолчанию: false
Можно менять: Да

Свойство: page
Тип: integer
Устанавливает начальный номер страницы, когда мы делаем запрос. Этот параметр добавляется к url, чтобы сервер его использовал при получении данных.
По умолчанию: 1
Можно менять: Да

Свойство: pager
Тип: mixed
Указывает, что мы хотим использовать панель навигации для перемещения по записям. Это должен быть корректный HTML-элемент. В нашем примере мы указываем здесь id элемента div с id 'pager' , но любой id возможен. Заметьте, что панель навигации (div 'pager' ) может располагаться в любом месте HTML-документа. В нашем примере мы расположили его после таблицы. Корректное значение может быть (в контексте нашего примера) 'pager' , '#pager' , jQuery( '#pager' ) Мы рекомендуем использовать второй вариант '#pager' . Смотрите  «Постраничная навигация в jqGrid».
По умолчанию: пустая строка. На текущий момент только одна панель постраничной навигации возможна.
Можно менять: нет

Свойство: pagerpos
Тип: string
Определяет позицию панели навигации в таблице. По умолчанию панель навигации после создания разделена на 3 части (одна часть для панели навигации, одна для навигационных кнопок и одна для информации о записях).
По умолчанию: center
Можно менять: Нет

Свойство: pgbuttons
Тип: boolean
Показывать кнопки навигации, если есть панель постраничной навигации. Корректно только в случае, когда свойство pager установлено корректно. Кнопки добавляются на панель постраничной навигации.
По умолчанию: true
Можно менять: Нет

Свойство: pginput
Тип: boolean
Определяет должно ли быть поле ввода запрашиваемой страницы. Поле ввода добавляется в панель постраничной навигации.
По умолчанию: true
Можно менять: Нет

Свойство: pgtext
Тип: string
Отображает информацию о текущей странице. Первое значение — номер текущей загруженной страницы. Второй значение — общее количество страниц.
По умолчанию: Смотрите языковый файл
Можно менять: Да

Свойство: prmNames
Тип: array
Значение по умолчанию для этого свойства такое:
{page:"page",rows:"rows", sort:"sidx", order:"sord", search:"_search", nd:"nd", id:"id", oper:"oper", editoper:"edit", addoper:"add", deloper:"del", subgridid:"id", npage:null, totalrows:"totalrows"}
Настраивает имена полей, отправляемых на сервер в POST-запросе. Например, с помощью этого свойства мы можем поменять поле сортировки с sidx на mysort, установив prmNames: {sort : "mysort"} . Запрос будет отправляться такой: myurl.php?page=1&rows=10&mysort=myindex&sord=asc rather than myurl.php?page=1&rows=10&sidx=myindex&sord=asc.
Теперь колонка сортировки может быть получена на сервере из $POST['mysort'] в PHP. Если какой-нибудь параметр установить в null, то он не будет отправляться на сервер. Например, если мы установим   prmNames: {nd:null} , то параметр nd не будет отправляться на сервер.
Эти свойства имеют следующий смысл и значения по умолчанию:
page: запрашиваемая страница (значение по умолчанию "page" )
rows: запрошенное количество строк (значение по умолчанию "rows" )
sort: колонка для сортировки (значение по умолчанию "sidx" )
order: направление сортировки (значение по умолчанию "sord" )
search: индикатор поиска (значение по умолчанию "_search" )
nd: время, добавляемое к запросу (для IE, чтобы не кешировал) (значение по умолчанию "nd" )
id: значение id при отправке данных из модулей редактирования (значение по умолчанию "id" )
oper: операция (значение по умолчанию "oper" )
editoper: имя операции при отправке данных из режима редактирования (значение по умолчанию "edit" )
addoper: имя операции при отправке данных из режима добавления (значение по умолчанию "add" )
deloper: имя операции при отправке данных из режима удаления (значение по умолчанию "del" )
totalrows: общее количество строк, полученных с сервера. Смотрите rowTotal (значение по умолчанию "totalrows" )
subgridid: имя, отправляемое на сервер, когда мы кликаем чтобы загрузить данные в подтаблицу (значение по умолчанию "id" )
По умолчанию: none
Можно менять: Yes

Свойство: postData
Тип: array
Поля и их значения из этого объекта добавляются к url.  Пример: {name1:value1…}. See API methods for manipulation.
По умолчанию: пустой массив
Можно менять: Yes

Свойство: reccount
Тип: integer
Только для чтения. Определяет точное количество строк в таблице. Не путать со свойством records. Не смотря на то, что во многих случаях они равны,  они разные. Например, если мы определим rowNum равным 15, но запрос с сервера вернёт 20, то свойство records будет равно 20, но параметр reccount будет равен 15 (таблица будет иметь 15 записей, а не 20).
По умолчанию: 0
Можно менять: Нет

Свойство: recordpos
Тип: string
Определяет позицию информации о записях в панели постраничной навигации. Может быть 'left' , 'center' , 'right' .
По умолчанию: 'right'
Можно менять: Нет

Свойство: records
Тип: integer
Только для чтения. Количество записей, возвращённых запросом с сервера.
По умолчанию: none
Можно менять: Нет

Свойство: recordtext
Тип: string
Текст, который может быть показан в панели навигации. Это свойство корректно при viewrecords установленном в true. Этот текст появляется только в случае, когда общее количество записей больше нуля. Чтобы показывать или скрывать какую-нибудь информацию, элементы {} означают следующее:
{0} -Номер первой записи. Зависит от номера страницы и количества запрошенных записей.
{1} — Номер последней записи.
{2} -Общее количество записей, возвращённых с сервера.
По умолчанию: Смотрите языковый файл
Можно менять: Да

Свойство: resizeclass
Тип: string
Добавляет класс к колонкам с изменяющейся шириной, чтобы мы могли показать, что изменять ширину можно только у них.
По умолчанию: пустая строка
Можно менять: No

Свойство: rowList
Тип: array[]
Массив для создания combobox-а в панели постраничной навигации, в котором можно поменять количество видимых записей. Когда меняется во время выполнения, этот параметр меняет rowNum, добавляемый к url. Если массив пустой, то этот combobox не появляется в панели постраничной навигации. Обычно мы можем задать что-то вроде [10,20,30]. Если свойство rowNum установлено в 30, то в combobox-е выбранным значением будет 30.
По умолчанию: пустой массив
Можно менять: Нет

Свойство: rownumbers
Тип: boolean
Если это свойство установлено в true, то добавляется ещё один столбец в левой части таблицы. Назначение этого столбца — показывать номера строк. В этом случае colModel расширяется автоматически новым элементом с именем rn. Не используйте имя rn в colModel.
По умолчанию: false
Можно менять: Нет

Свойство: rowNum
Тип: integer
Устанавливает количество строк, которые мы хотим видеть в таблице. Этот параметр добавляется к url, чтобы сервер мог его использовать при выборке данных. Если вы установите этот параметр в 10 и сервер вернёт 15 записей, то только 10 записей будут загружены. Установите этот параметр в -1 (без ограничений), чтобы отключить эту проверку.
По умолчанию: 20
Можно менять: Да

Свойство: rowTotal
Тип: integer
Этот параметр (если установлен) указывает серверу загрузить общее количество строк, необходимых для продолжения работы. Заметьте, что rowNum определяет общее количество строк, отображаемых в таблице, а rowTotal определяет общее количество строк, с которыми мы можем работать. Когда это свойство установлено, мы отправляем дополнительный параметр на сервер totalrows. Вы можете проверить этот параметр, и если он доступен, вы можете заменить параметр rows этим. Обычно этот параметр используется вместе со свойством loadonce, установленным в true.
По умолчанию: null
Можно менять: Да

Свойство: rownumWidth
Тип: integer
Определяет ширину колонки с номерами строк, если свойство rownumbers установлено в true.
По умолчанию: 25
Можно менять: Нет

Свойство: savedRow
Тип: array
Это свойство только для чтения и используется в модулях редактирования строки и редактирования ячейки для того, чтобы сохранить данные перед редактированием строки или ячейки. Смотрите «Редактирование строки в jqGrid» и «Редактирование ячейки в jqGrid».
По умолчанию: пустой массив
Можно менять: Нет

Свойство: searchdata
Тип: array {}
Это свойство содержит данные для поиска в виде «имя:значение».
По умолчанию: empty array{}
Можно менять: Да

Свойство: scroll
Тип: boolean или integer
Создаёт динамически прокручиваемые таблицы. Когда включено, элементы постраничной навигации отключаются, и мы можем использовать вертикальную полосу прокрутки для загрузки данных. Когда установлено в true, таблица всегда содержит все элементы от начала до последней когда-либо посещённой точки.
Когда scroll установлено в целочисленное значение (например 1), таблица будет только хранить видимые строки. Это позволяет загружать данные порциями, не боясь утечек памяти. Кроме этого мы имеем добавление к протоколу работы с сервером: npage (смотрите prmNames). Если мы установим свойство npage в prmNames, то таблица иногда будет запрашивать более одной страницы, если нет, то будет осуществляться несколько GET-запросов.
Это свойство не совместимо с установкой свойства height в 'auto' или 100%.
По умолчанию: false
Можно менять: No

Свойство: scrollOffset
Тип: integer
Определяет ширину вертикальной полосы прокрутки. Поскольку разные браузеры могут понимать эту ширину по-разному (и это сложно вычислить её для всех браузеров), это может быть изменено.
По умолчанию: 18
Можно менять: Нет. Есть метод.

Свойство: scrollTimeout
Тип: integer
(миллисекунды)
Контроллирует timeout обработчика, когда scroll установлено в 1.
По умолчанию: 200
Можно менять: Да

Свойство: scrollrows
Тип: boolean
Если включено, то выбор строки с помощью setSelection прокручивает таблицу так, что выбранная строка становится видима. Это особенно полезно в случае, когда мы имеем таблицу с вертикальной прокруткой и мы используем редактирование в форму с кнопками навигации (следующая запись и предыдущая запись). При перемещении на скрытую строку таблица прокручивается так, чтобы выделенная строка стала видимой.
По умолчанию: false
Можно менять: Да

Свойство: selarrrow
Тип: array
Это свойство только для чтения. Возвращает текущие выбранные записи при multiselect, установленном в true. Это одноразмерный массив и значения в нём соответствуют id выбранных строк.
По умолчанию: пустой массив []
Можно менять: Нет

Свойство: selrow
Тип: string
Это свойство только для чтения. Оно содержит id последней выбранной строки. Если вы сортируете или используете постраничную навигацию, то это свойство устанавливается в null.
По умолчанию: null
Можно менять: Нет

Свойство: shrinkToFit
Тип: boolean или integer
Это свойство, если установлено, определяет то, как ширина колонок таблицы должна пересчитываться, основываясь на ширине таблицы. Если это значение true, и ширина колонок тоже установлена, то каждая растягивается в пропорциях своей ширины. Например, если мы определяем две колонки с шириной 80 и 120 пикселей, но хотим иметь таблицу с шириной 300 пикселей, то колонки будут растянуты так, чтобы полностью занять всё таблицу, а дополнительная ширина, которая будет добавлена к ним, будет зависеть от ширины самих колонок и наличия дополнительного свободного места. Пересчёт будет происходить так: первая колонка  получает ширину (300(новая ширина таблицы)/200(ширина всех колонок вместе взятых))*80(ширина первой колонки) = 120 пикселей, и вторая колонка получит ширину (300(новая ширина таблицы)/200(ширина всех колонок вместе взятых))*120(ширина второй колонки) = 180 пикселей. Теперь ширина колонок 300 пикселей, что равно ширине таблцы. Если значение равно false, и свойство width установлено, то изменения ширины колонок не будет вообще. В нашем примере, если shrinkToFit установлено в false, первая колонка будет иметь ширину 80 пикселей, вторая колонка будет иметь ширину 120 пикселей, и таблица будет иметь ширину 300 пикселей. Если значение shrinkToFit  — целое число, то ширина вычисляется в соответствии с ним.
По умолчанию: true
Можно менять: No

Свойство: sortable
Тип: boolean
Если установлено в true, то пользователь может менять порядок колонок, перетаскивая их с помощью drag’n’drop. Это свойство использует widget jQuery UI sortable, поэтому убедитесь, что вы загрузили этот виджет и связанные с ним файлы в тег head HTML-страницы. Также убедитесь, что вы выбрали jQuery UI Addons в jQuery UI Addon Methods секции при скачивании jqGrid, если вы хотите использовать эту возможность. Обратите внимание: объект colModel тоже имеет свойство sortable, которое указывает, могут ли данные таблицы быть отсортированы по этой колонке.
По умолчанию: false
Можно менять: Нет

Свойство: sortname
Тип: string
Колонка, в соответствии с которой данные должны быть отсортированы при начальной загрузке с сервера (вам нужно использовать тип данных xml или json, чтобы загрузить данные с сервера). Это свойство добавляется к url. Если это свойство установлено и индекс (имя) совпадает с именем из colModel, то появляется иконка, которая показывает, что таблица отсортирована по этой колонке. Эта иконка также определяет порядок сортировки (по убыванию или по возрастанию, смотрите свойство sortorder). Также смотрите prmNames.
По умолчанию: пустая строка
Можно менять: Да

Свойство: sortorder
Тип: string
Начальный порядок сортировки (по возрастанию или по убыванию) при получении данных с сервера с типом данных XML или JSON. Этот параметр добавляется к url. Смотрите prmNames. Возможные значения: asc и desc.
По умолачнию: asc
Можно менять: Yes

Свойство: subGrid
Тип: boolean
Если true, то включена поддержка подтаблиц. Если subGrid равно true, то дополнительная колонка добавляется в левую часть таблицы. Эта колонка содержит картинку с плюсиком, которая показывает, что пользователь может кликнуть по ней, чтобы развернуть строку. По умолчанию все строки развёрнуты. Смотрите «Подтаблицы (Subgrid) в jqGrid».
По умолчанию: false
Можно менять: No

Свойство: subGridOptions
Тип: object
Дополнительные параметры для подтаблицы. Для получения больше информации смотрите «Подтаблицы (Subgrid) в jqGrid».
По умолчанию: смотрите «Подтаблицы (Subgrid) в jqGrid».
Можно менять: Да

Свойство: subGridModel
Тип: array-[]
Это свойство, которое описывает модель подтаблицы, имеет эффект только при установке свойства subGrid в true. Это массив, в котором мы описываем модель колонок для подтаблицы. Для получения большей информации смотрите «Подтаблицы (Subgrid) в jqGrid».
По умолчанию: пустой пассив
Можно менять: Нет

Свойство: subGridType
Тип: mixed
Разрешает загрузку подтаблицы как сервис. Если не установлено, то используется свойство datatype родительской таблицы.
По умолчанию: null
Можно менять: Yes

Свойство: subGridUrl
Тип: string
Это свойство имеет эффект только при установленном свойстве subGrid в true. Это свойство указывает на url, с которого мы будем получать данные для подтаблицы. К этому url будет добавлен id строки в качестве параметра. Если требуется передать дополнительные параметры, то используйте свойство params в subGridModel. Смотрите «Подтаблицы (Subgrid) в jqGrid».
По умолчанию: empty string
Можно менять: Да

Свойство: subGridWidth
Тип: integer
Определяет ширину колонки с подтаблицей, если подтаблица включена.
По умолчанию: 20
Можно менять: Нет

Свойство: toolbar
Тип: array
Это свойство задаёт панель инструментов для таблицы. Это массив с двумя элементами, в которых первый элемент включает панель инструментов, а второй определяет  позицию относительно содержимого таблицы. Возможные значения: 'top' , 'bottom' , и 'both' . Если мы устанавливаем панель так:  [true,"both"]  , то две панели инструментов добавляются. Одна — выше содержимого таблицы, и одна — ниже. Когда мы имеем две панели инструментов, мы создаём два элемента (div). У верхней панели инструментов id создаётся объединением строки ‘t_’ и  id таблицы, как ‘t_’ + id_of_the_grid и id нижней панели инструментов создаётся объединением строки  ‘tb_’ и id таблицы, как ‘tb_’ + id_of_the grid. В случае создания только одной панели инструментов мы имеем id как ‘t_’ + id_of_the_grid, независимо от того, где эта панель инструментов находится (сверху или снизу).
По умолчанию: [false, '']
Можно менять: Нет

Свойство: toppager
Тип: boolean
Включение этого свойство располагает панель постраничной навигации в верхней части таблицы, под заголовком (если он есть). Если другая панель постраничной навигации объявлена, то обе они сосуществуют и держатся синхронизированными. Идентификатор id новой панели постраничной навигации создаётся комбинацией grid_id + '_toppager' .
По умолчанию: false
Можно менять: Нет

Свойство: totaltime
Тип: integer
Только для чтения.  Возвращает время загрузки записей. Сейчас доступно только при загрузке XML или JSON. Измерение начинается после окончания загрузки и заканчивается после добавления последней строки.
По умолчанию: 0
Можно менять: Нет

Свойство: treedatatype
Тип: mixed
Начальный тип данных (смотрите свойство datatype). Обычно это свойство не должно меняться. Во время процесса чтения это свойство равно свойству datatype.
По умолчанию: null
Можно менять: Нет

Свойство: treeGrid
Тип: boolean
Включает/выключает формат дерева. Смотрите «Настройка TreeGrid в jqGrid».
По умолчанию: false
Можно менять: Нет

Свойство: treeGridModel
Тип: string
Определяет метод, используетмый treeGrid. Возможные значения: 'nested' и  'adjacency' . Для подробной информации смотрите «Настройка TreeGrid в jqGrid».
По умолчанию: nested
Можно менять: Нет

Свойство: treeIcons
Тип: array
Устанавливает иконки для дерева. Иконки должны иметь корректные имена из UI theme roller images. Значение по умолчанию: {plus:'ui-icon-triangle-1-e',minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'} .
По умолчанию:
Можно менять: No

Свойство: treeReader
Тип: array
Расширяет colModel, объявленный в базовой таблице. Поля, описанные здесь, добавляются в конец массива colModel и они скрытые. Это означает, что данные, возвращаемые сервером должны иметь значения для этих полей. Для более подробного описания обратитесь к «Деревья в jqGrid».
По умолчанию:
Можно менять:
Нет

Свойство: tree_root_level
Тип: numeric
Определяет уровень, на котором начинается корневой элемент, когда свойство treeGrid равно true.
По умолчанию: 0
Можно менять: Нет

Свойство: url
Тип: string
Адрес url, который возвращает данные для заполнения таблицы. Может быть установлено в 'clientArray' , чтобы вручную отправлять данные на сервер. Смотрите «Редактирование строки в jqGrid».
По умолчанию: null
Можно менять: Да

Свойство: userData
Тип: array
Этот массив содержит информацию из запроса. Может использоваться в любое время.
По умолчанию: пустой массив
Можно менять: Нет

Свойство: userDataOnFooter
Ттип: boolean
Если установлено в true, то мы напрямую помещаем массив userData в подвал таблицы. Правила такие: Если userData содержит имя, которое совпадает с каким-нибудь именем в colModel, то значение добавляется в колонку. Если нет таких, то ничего не добавляется. Заметьте, что если это свойство используется, то мы используем текущие свойства форматирования (если есть) для этой колонки.
По умолчанию: false
Можно менять: Да

Свойство: viewrecords
Тип: boolean
Если установлено в true, то jqGrid показывает начальный номер записи и конечный номер записи, за пределам общего количества записей в запросе. Эта информация отображается в панели постраничной навигации (по умолчанию внизу справа)  в формате: «View X to Y out of Z».This information is shown in the pager bar (bottom right by default)in this format: “View X to Y out of Z”. Если это свойство равно true, то другие параметр могут быть скорректированы, включая emptyrecords и recordtext.
По умолчанию: false
Можно менять: Нет

Свойство: viewsortcols
Тип: array
Этот параметр определяет внешний вид и поведение  иконок сортировки (стрелки вверх и вниз), которые появляются в заголовках колонок. Это свойство является массивом со значением по умолчанию viewsortcols : [false,'vertical',true]. Первый параметр определяет, должны ли иконки сортировки быть видимыми для всех колонок, которые имеют свойство sortable установленное в true. Установка этого свойства в true может быть полезна, если вы хотите отображать пользователю, что он может сортировать по этим колонкам. Значение по умолчанию false делает иконки видимыми только на колонках, по которым была произведена сортировка. Установка этого параметра в true делает все иконки на всех колонках, по которым можно сортировать, видимыми.
Второй параметр определяет то, как иконки должны быть расположены. Значение 'vertical' означает, что иконки друг над другом, 'horizontal' означает, что стрелки должны быть рядом друг с другом.
Третий параметр определяет функциональность по клику. Если установить в true, то данные будут осортированы, если пользователь кликнет в любом месте заголовков столбцов, а не только на иконках. Если установить в false, то данные будут отсортированы, только если клик будет по иконке сортировки в заголовке колонки.
Важно. Если вы устанавливаете третий параметр в false, то убедитесть в том, что вы установили первый элемент в true. Если вы не сделаете этого, то иконки будут невидимы, и ползователь не будет знать, где нужно кликнуть, чтобы отсортировать данные.
По умолчанию: [false,'vertical',true]
Можно менять: Нет

Свойство: width
тип: number
Если это свойство не установлено, то ширина таблицы будет равна суммарной ширине колонок, опредённых в colModel (в пикселях). Если это свойство установлено, то начальная ширина всех колонок будет установлена в соответствии с  опцией shrinkToFit.
По умолчанию: none
Можно менять: Нет. Есть метод.

Свойство: xmlReader
Тип: array
Массив, описывающий структуру ожидаемых данных в формате XML. Для полного описания смотрите «XML-данные в jqGrid».
По умолчанию:
Можно менять:
Нет

Установка опций глобально

В некоторых случаях вы захотите некоторые свойства изменить (изменить значение по умолчанию) и это свойство должно быть общим для всех ваших таблиц. Это может быть сделано с помощью функции extend из jQuery.

Предположим, что вы хотите иметь таблицу в полоску (чередующийся цвет строк) и хотите, чтобы все ваши таблицы имели это свойство установленным в true. Если вы не хотите писать этот код каждый раз при создании таблицы, то можно сделать это так (используем код из нашего примера):

 

Вы можете добавить сюда столько свойств, сколько хотите.

Как переопределить глобальные опции

В предыдущем примере мы научились устанавливать общие свойства для всех таблиц в нашем приложении. Однако вы можете столкнуться с ситуациями, где вы захотите переопределить глобальные свойства для конкретной таблицы.

Чтобы сделать это, вам нужно изменить свойство в этой таблице. Например, пусть мы установили глобальное свойство для всех строк, чтобы они имели альтернативные цвета (таблица в стиле зебры). Если мы не хотим иметь альтернативные цвета для определённой таблицы, то просто установим свойство altRows в false и глобальное свойство будет перезаписано.

Пример:

 

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

Следующая статья — «Свойства colModel в jqGrid».
Предыдущая статья — «Соглашения при работе с jqGrid».

Свойства jqGrid: 14 комментариев

  1. А чем параметр inlineData отличается от postData? И там и там данные отправляются на сервер.

  2. А как заставить дерево выводить собственные иконки вместо иконок из темы?
    Есть собственные картинки, которые надо отображать вместо стандартных треугольников и кружков.

    1. Стандартного способа это сделать нет, на сколько я знаю. Поправьте кто-нибудь, если ошибаюсь.

  3. Добрый день, Фёдор! Не подскажите ли как решить подобную задачу: в colModel есть 2 поля, типа Select. Для каждого Select есть свой файл формирования Select Option. Значения для Select выбираются из таблиц базы данных. Как реализовать, чтобы в зависимости от того, какое значение выбрано для Country, формировался SQL запрос для City в файле City.php? Или, может быть, по другому нужно реализовать?
    colModel :[{name:’Country’, index:’Country’, edittype:»select», editoptions:{dataUrl:’Country.php’}},
    {name:’City’, index:’City’, width:300, edittype:»select», editoptions:{dataUrl:’City.php’}}],

    1. Попробуйте так:

      Сама функция updateDeptSelect делает ajax-запрос, который возвращает кусок html с готовым элементом select с заполненными option-ами:

      Для режима редактирования в форме вполне должно работать. Возможно, что и для остальных режимов редактирования сработает.

      Это сама идея в общих чертах. Пример не могу дать, потому что сейчас его у меня нет.

  4. Спасибо, Фёдор! Решил более кратко. В get_area.php отправляем переменную LOCATIONGROUP. В get_area.php уже принимаем $_GET[«LOCATIONGROUP»];
    {name:»LOCATIONGROUP», index: «LOCATIONGROUP», editable:true, stype: ‘select’, edittype:’select’,
    editoptions: {
    dataUrl:»get_locationgroup.php»,
    dataEvents :[{
    type: ‘change’,
    fn: function(e) {
    var thisval = $(e.target).val();
    $.get(‘get_area.php’,{ LOCATIONGROUP: thisval},function(data) {
    var res = $(data).html();
    $(«#AREA»).html(res);
    });
    }
    }
    ],
    },
    },
    {name:»AREA»,index: «AREA»,editable:true, stype: ‘select’, edittype:’select’, editoptions: {dataUrl:»get_area.php»}}

  5. Доброй ночи!

    Как поменять значение dataUrl для searchoptions в расширенном поиске. У меня в расширенном поиске есть зависимые select-ы, при каждом добавлении правила поиска, данные для зависимых селектов должны грузиться из dataUrl = /ajax/test/+(главный select).val(). В моем случае не смог найти как перезаписать данные для dataUrl, он всегда постоянный, пробовал менять через colProp, но изменения не принимает форма поиска.

  6. Подскажите, пожалуйста, как задать выделенную строку после создания грида?

  7. Подскажите, как растянуть таблицу на всю ширину родительского контейнера после вызова метода hideCol()?Колонка прячется, но таблица получается обрезанной.

    1. Точно не знаю. Скорее всего, нужно руками обрабатывать, чтобы достичь подобного.

  8. Вопрос есть ли возможность добавить в запрос пользовательские данные для выборки в зависимости от значений других полей?
    { name: «model_ustroistva»,
    editable:true,
    edittype:»select»,
    editoptions: {
    dataUrl: ‘mainPrinter/selectModelUstroistva’,
    }
    },

    1. Вам, скорее всего, нужно перестраивать этот select меняя dataUrl с новыми параметрами и перезагружая данные вручную. Но точно не могу сказать, давно с jqGrid не работал.

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

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