Свойство editoptions в jqGrid

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

Следующая статья — «Свойство editrules в jqGrid».
Предыдущая статья — «Свойство edittype в jqGrid».

Свойство editoptions содержит информацию о редактируемой колонке. Важно знать, что в editoptions можно указать любой корректный атрибут для выбранного edittype.

Свойство editoptions часто используется в colModel. Вот его синтаксис:

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

Свойство: value
Тип: смешанный
Если edittype равен 'checkbox', то это значение должно быть строкой с двумя возможными значениями, разделёнными двоеточием «:». Пример: { value:"Yes:No"}, где первое значение обозначает состояние с галочкой.
Если edittype равен 'select', то value может быть строкой, объектом или функцией.
Если свойство является строкой, то оно должно содержать множество пар «значение:надпись», где значение отделено от надписи двоеточием «:», заканчивающихся «;». Строка не должна заканчиваться на «;»: editoptions: {value:"1:One;2:Two"}.
Если значение является объектом, то он должен быть объявлен таким образом: editoptions:{value:{1:'One';2:'Two'}}.
Если значение является функцией, то она должна возвращать форматированную строку или объект.
Во всех этих случаях это является значением элемента input, если определено.

Свойство: dataUrl
Тип: string
Это свойство корректно только для элементов типа select ( edittype : 'select'). Оно должно содержать URL для AJAX-запроса. С этого URL должен возвращаться корректный HTML-элемент select с желаемыми оptions: <select><option value='1'>One</option></select>. Вы можете использовать группы опций (тег optgroup).
AJAX-запрос отправляется только один раз при создании элемента.
При редактировании в строке или в ячейке или в форме это вызывается каждый раз при начале редактирования новой строки, ячейки или запуске формы. В форме редактирования только один раз.

Свойство: buildSelect
Тип: function
Это свойство уместно только при установленном свойстве dataUrl. Если ответ сервера не может построить элемент select, то вы можете использовать свою собственную функцию для построения select. Функция должна возвращать строку, содержащую select и options, как описано в свойстве dataUrl. В функцию передаётся параметр — ответ сервера.

Свойство: dataInit
Тип: function
Мы передаём объект элемента в эту функцию, если она определена. Эта функция вызывается только один раз при создании элемента. Пример:
editoptions: { dataInit : function (elem) {$(elem).autocomplete();}}
В модулях редактирования в строке или в ячейке эта функция вызывается каждый раз при начале редактирования новой строки или ячейки. При редактировании в форме вызывается только один раз, если свойство recreateForm установлено в false, и каждый раз, если это свойство установлено в true.
Некоторые плагины требуют позицию элемента в DOM, и поскольку это событие возникает перед вставкой элемента в DOM, вы можете использовать функцию setTimeout, для завершения необходимого действия. Это особенно нужно для jQuery UI datepicker (1.7.x and up releases)

Свойство: dataEvents
Тип: array
Список событий для элемента ввода. Используется $("#id").bind(type, [data], fn) для привязывания событий к элементу. Должно быть описано примерно так:
editoptions: { dataEvents: [{ type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },{ type: 'keypress', fn: function(e) { console.log('keypress'); } }]}

Свойство: defaultValue
Тип: смешанный
Это свойство может быть строкой или функцией. Это свойство имеет смысл только для модуля редактирования в форме, используемого вместе с методом editGridRow в режиме добавления. Если определено, то в элемент ввода ставится это значение только в том случае, если элемент пуст. Если используется в элементах select, то в этом значении должен быть предоставлен текст, а не ключ. Если является функцией, то функция должна возвращать значение.

Свойство: NullIfEmpty
Тип: boolean
Если установлено в true, то на сервер отправляется строка 'null', если поле пусто.

Свойство: custom_element
Тип: function
Используется только если свойство edittype установлено в 'custom'.
Эта функция используется для создания элемента. Функция должна вернуть новый DOM-элемент. В функцию передаются два параметра: значение и editoptions из colModel.

Свойство: custom_value
Тип: function
Используется только при edittype равном 'custom'.
Эта функция должна вернуть значение из элемента после редактирования для отправки на сервер. В эту функцию передаётся объект элемента и тип операции. В модулях редактирования в строке и в ячейке эти параметры всегда строковое значение — 'get'.
При редактировании в форме эта функция имеет другое поведение. В этом случае передаётся третий параметр — значение. Когда значения из пользовательского элемента отправляются на сервер, второй параметр имеет значение 'get'. В этом случае функция должна вернуть значение. Если никаких значений не возвращается, то возникает ошибка.
В случае считывания данных из таблицы для установки в форму параметр операции имеет значение 'set', и значение из таблицы передаётся в третий параметр. Таким образом мы можем менять значение из таблицы перед отображением в форме.

Другие свойства
Тип: смешанный
Вы можете установить любые другие атрибуты для элемента редактирования. Например, если элемент edittype:'text', мы может указать атрибуты size, maxlength и другие. Смотрите корректные атрибуты для элемента.

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

Следующая статья — «Свойство editrules в jqGrid».
Предыдущая статья — «Свойство edittype в jqGrid».

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

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