Как получить доступ к другому полю / комбо в строке rowedittemplate при создании строки сетки, когда происходит selectionChanged или checkValue?

Ситуация следующая: я создаю строку в сетке. У меня есть несколько свойств, среди которых одно поле с именем "отдел" и одно поле с именем "имя". Бизнес-правило заключается в том, что все "имена" в "отделе" должны быть уникальными. Сетка не загружает все комбинации названий отделов, поэтому мне нужно позвонить на сервер. Я хочу сделать этот звонок, когда

  1. selectionChanged на комбо 'отдел' происходит или
  2. когда 'checkValue' опций валидатора поданного 'name' происходит.

Таким образом, я проверяю, когда либо меняется. Проблема заключается в том, что это происходит во время создания, и в источнике данных нет ни строк, ни накопленных строк в журнале транзакций.

Как я могу получить доступ к полям rowEditTemplate во время создания во время этих конкретных событий, чтобы проверить мои значения? Есть ли другой / лучший способ добиться этого?

1 ответ

Решение

Редакторы не создаются, пока вы не сделаете первое редактирование. Вы можете использовать событие editRowStarted, чтобы присоединить логику редактора. Их можно получить с помощью метода editorForKey.

editRowStarted: function (evt, ui) {
    var comboEditor = ui.owner.editorForKey("ProductDescription");
}

Я создал небольшую скрипку, которая назначает источник данных для комбо на editRowStarted. Это должно послужить отправной точкой для того, чего вы пытаетесь достичь.

http://jsfiddle.net/hfen0qea/

Другие вопросы по тегам