2012-03-30 2 views
1

Используя 8.5.3, у меня есть Xpage со сборщиком значений, который заполняет текстовое поле списка додзе. Это прекрасно работает. Тем не менее, мне нужно заполнить некоторые другие поля на основе выбора из сборщика значений. Если я перейду на панель событий для ListTextBox в дизайнере домино, чтобы добавить события, он показывает ошибки, но из панели свойств всех ListTextBox перечислены события. Эти события являются событиями на стороне клиента, которые, хотя и не идеальны, я могу обойти. Однако из этих событий не работает даже простое поле предупреждения.Как связать событие onchange с текстовым полем списка объектов Dojo в Xpages?

Вот мой пример кода:

<xe:djextListTextBox id="dLinkedGroupsIDsTX" 
    multipleSeparator="," intermediateChanges="true" displayLabel="true" 
    value="#{document1.dLinkedGroupsTX}" onChange="alert('change');"> 
</xe:djextListTextBox> 
<xe:valuePicker id="valuePicker1" for="dLinkedGroupsIDsTX" 
    dialogTitle="Linked Groups" pickerIcon="add.png" listWidth="700px"> 
    <xe:this.dataProvider> 
     <xe:simpleValuePicker valueListSeparator="," 
      labelSeparator="~"> 
      <xe:this.valueList><![CDATA[#{javascript:@DbColumn("","vwGroupLU",4)}]]></xe:this.valueList> 
     </xe:simpleValuePicker> 
    </xe:this.dataProvider> 
</xe:valuePicker> 

Любая помощь будет принята с благодарностью!

ОБНОВЛЕНИЕ Похоже, что от других испытаний, похоже, срабатывают все другие события. onFocus, onClick и т. д. Но это на самом деле не помогает мне :-(Возможно, есть еще один способ сделать это?

ответ

2

Вы можете попытаться подключить функцию javascript к событию после загрузки страницы (как в Marky's вопрос - Getting the dijit for a typeAhead in XPages)

Поместите следующий код на onClientLoad стороне клиента Javascript в XPage или CC:

dojo.addOnLoad(function(){ 
    XSP.attachEvent("X1","#{id:dLinkedGroupsIDsTX}", "onchange", 
        function() { alert("changed");}, false, 2); 
}); 

X1 должен быть какой-либо уникальный идентификатор Кроме того, удалить OnChange атрибут из вашего кода

..
+0

Спасибо за ответ. Я попытался реализовать ваши (а также вопрос от вопроса Markys), но он ничего не делает. Те же результаты - нет обстрела события. –

+0

Извините, я испортил быстрый ответ. Я тестировал выше код сейчас, он работает. XSP.addOnLoad и dojo.addOnLoad работают разные, я думаю. –

+0

Это действительно работает! Забавно, я просто сделал решение, в котором я положил значение из valuePicker в скрытое поле inputText, затем сделал частичное обновление в listTextBox на основе значения скрытого поля, а затем для события onclick в listTextBox (который работает на его собственный) Я обновил скрытый inputText .. дрянное решение .. но это действительно сработало. Мне нравится ваше решение лучше. Еще раз спасибо! –

Смежные вопросы