XPages - заполнение нескольких полей при выборе шрифта

Это может быть простой вопрос, но я не вижу леса вместо деревьев в данный момент.

Проблема: к окну редактирования прикреплен заголовок, который ищет значения из представления (на основе кода Тима Трипкони). Когда значение выбрано, я хочу, чтобы другие поля редактирования на XPage заполнялись значениями, извлеченными из соответствующего документа.

В качестве примера: в поле редактирования имени пользователя есть ввод текста вверх от NAB. Я выбираю имя «Джо Блоггс» из списка ввода и хочу, чтобы поля редактирования электронной почты, телефона и местоположения были немедленно заполнены значениями из его записи NAB.

Я бьюсь головой об стену из-за этого, потому что уверен, что есть простое и очевидное решение. Спасибо.


person TrailDragon    schedule 17.01.2013    source источник


Ответы (1)


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

var selectedName = currentDocument.getValue("contactName");
currentDocument.setValue("emailAddress", getEmail(selectedName));
currentDocument.setValue("phoneNumber", getPhone(selectedName));
currentDocument.setValue("location", getLocation(selectedName));

Естественно, в приведенном выше примере предполагается, что это имена ваших полей и что у вас есть именованные функции, определенные в другом месте.

person Tim Tripcony    schedule 17.01.2013
comment
Спасибо, Тим, это указывает мне правильное направление. Я думал, что буду писать что-то вроде getComponent(emailAddress).setValue(getEmail(selectedName)); ... вместо обновления источника данных. Есть ли причина, по которой я должен обновить источник данных, а не сам Xpage - по соображениям передовой практики или что-то в этом роде? - person TrailDragon; 17.01.2013
comment
Есть несколько причин, по которым этот подход является лучшей практикой, но, пожалуй, наиболее важными из них являются перспективность и производительность. - person Tim Tripcony; 17.01.2013