Свойство edittype в jqGrid

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

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

Свойство edittype определяет тип элемента редактирования поля. Возможные значения: 'text', 'textarea', 'select', 'checkbox', 'password', 'button', 'image', 'file' и 'custom' . Значение по умолчанию — 'text'.

text

Когда свойство edittype равно 'text' , jqGrid создаёт элемент ввода input type text:

В editoptions можно указать все возможные атрибуты для этого поля. Например:

создаст следующий элемент ввода:

В дополнение к этому jqGrid добавит атрибуты id и name.

textarea

Если edittype равно 'textarea' , то jqGrid создаст элемент ввода textarea:

В editoptions можно указать дополнительные атрибуты. Обычно это размеры:

К этим атрибутам jqGrid дополнительно добавляет id и name.

checkbox

Когда edittype равен 'checkbox', то jqGrid создаёт следующий элемент ввода:

Свойство value в editoptions используется для определения значения для состояния с галочкой и без галочки. Первое значение для состояния с галочкой. Пример:

Это создаст:

Определяет checkbox. Когда значение равно Yes, checkbox становится с галочкой, в противном случае — без галочки. Это значение передаётся в качестве параметра в editurl.

Если в editoptions свойство value не установлено, то jqGrid ищет значения (false|0|no|off|undefined), для того, чтобы построить элемент checkbox. Если содержимое ячейки не содержит одно из этих значений, то атрибут value становится содержимым ячейки и offval устанавливается в "off" .

Если содержимое ячейки равно true, то:

К этим атрибутам jqGrid добавляет id и name.

select

Когда свойство edittype равно 'select', jqGrid создаёт тег input:

Есть три способа создания этого элемента:

1. Установка строки в свойство value в editoptions. Свойство value в editoptions должно содержать множество пар «значение:надпись», где значение отделено от надписи двоеточием «:», и где пары заканчиваются точкой с запятой «;».

Что-то вроде этого:

создаст:

Последний элемент в строке не должен заканчиваться на «;».

2. Установка объекта в свойство value в editoptions.

В этом случае value в editoptions должно содержать примерно следующее:

Это создаст HTML-элемент select:

3. Установка свойства dataUrl в editoptions. Свойство dataUrl в editoptions корректно только для элементов с edittype: 'select'. Свойство dataUrl содержит url, из которого должен браться элемент select.

Когда это свойство установлено, элемент заполняется значениями из AJAX-запроса. Данные должны быть корректным элементом select с желаемыми элементами option:

К этому элементу jqGrid добавляет атрибуты id и name.

Множественный выбор из select-а также возможен. Можно добавить атрибут size.

password

Когда edittype равен 'password', jqGrid создаёт элемент ввода с типом password:

В editoptions мы можем установить все возможные атрибуты для этого поля. Например:

будем иметь следующий HTML:

В дополнение к этим атрибутам jqGrid добавляет атрибуты id и name.

button

Если свойство edittype равно 'button', то jqGrid создаёт следующий элемент:

В editoptions можно установить все возможные атрибуты для поля. Например:

Здесь элемент ввода будет выглядеть так:

В дополнение к этим атрибутам jqGrid добавляет атрибуты id и name.

image

Если edittype равно 'image', то jqGrid создаёт следующий элемент ввода:

В editoptions можно установить все возможные атрибуты для поля. Например:

jqGrid создаст следующий текст:

В дополнение к этим атрибутам jqGrid добавляет атрибуты id и name.

file

Если свойство edittype равно 'file', то jqGrid создаст следующий элемент:

В editoptions можно установить все возможные атрибуты для поля. Например:

jqGrid создаст следующее:

В дополнение к этим атрибутам jqGrid добавляет атрибуты id и name.

Когда этот элемент создан (обычно в форме редактирования), форма НЕ становится ENCTYPE="multipart/form-data", для того чтобы отправлять файл. Нужно применить другой плагин для этих целей — AJAX File Upload plugin.

custom

Этот тип элемента редактирования делает возможным объявление пользовательского элемента редактирования. Когда edittype установлен в "custom", вам нужно предоставить две функции: одна создаёт элемент, одна получает и устанавливает значение из формы и в форму для отправки на сервер.

Функции, которые должны быть определены это: custom_element и custom_value. Смотрите editoptions для получения большей информации.

При создании пользовательского элемента автоматически выполняются три действия:

  • добавляется класс 'customelement'
  • добавляется атрибут name со значением name из colModel
  • добавляется id в соответствии с правилами для выбранного способа редактирования

Примет выше создаёт следующий элемент ввода:

 

 

govern [ˈɡʌvən] — руководить, управлять, ограничивать

 

 

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

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

Свойство edittype в jqGrid: 3 комментария

  1. Добрый день.
    В таблице использую поле, редактируемое с помощью списка (edittype: ‘select’, editoptions: { value: «Заблокирован:Заблокирован; Активен:Активен; Ожидает подтверждения:Ожидает подтверждения» }). Пробовал ещё так (edittype: ‘select’, editoptions: { value: { 0: ‘Заблокирован’, 2:’Активен’, 3:’Ожидает подтверждения’} }).
    Если редактирую сроку в отдельной форме — список работает корректно (предлагает все варианты), а при редактировании данного поля прямо в строке таблицы список не работает (отображает только один вариант, соответствующий текущему значению ячейки). Подскажите, в какую сторону копать, в чём может быть причина?

      1. Добрый день. Спасибо.
        Методом «научного тыка» удалось определить, что удаление параметра multikey решает проблему.
        Вы не знаете, как это связано?
        Вот набор моих параметров для множественного выбора:
        multikey: ‘ctrlKey’,
        multiboxonly: true,
        multiselect: true,
        multiselectWidth: 20,
        При этом, изменение/удаление параметра multiboxonly ситуации не меняет, пока есть параметр multikey выпадающие списки при редактировании поля прямо в таблице не работают.

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

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