2012-03-30 9 views
1

Mit 8.5.3 habe ich eine X-Seite mit einer Wertauswahl, die ein Dojo-Listen-Textfeld auffüllt. Das funktioniert gut. Allerdings muss ich einige andere Felder basierend auf der Auswahl aus der Wertauswahl füllen. Wenn ich im Domino-Designer zum Ereignisfenster für die ListTextBox gehe, um Ereignisse hinzuzufügen, werden Fehler angezeigt, aber im Bereich für alle Eigenschaften der ListTextBox sind Ereignisse aufgelistet. Diese Ereignisse sind clientseitige Ereignisse, die zwar nicht ideal sind, ich kann aber umgehen. Jedoch funktioniert auch eine einfache Alarmbox nicht von diesen Ereignissen.Wie füge ich ein Onchange-Ereignis an ein Dojo-List-Textfeld in Xpages an?

Hier ist mein Beispielcode:

<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> 

Jede Hilfe wäre sehr dankbar!

UPDATE Es scheint von weiteren Tests, dass alle anderen Ereignisse zu feuern scheinen. onFocus, onClick, etc .. Aber das hilft mir nicht wirklich :-(Vielleicht gibt es einen anderen Weg, um darüber zu gehen?

Antwort

2

Sie können versuchen, Ihre Javascript-Funktion mit dem Ereignis nach dem Laden der Seite zu verbinden (wie in Marky Frage - Getting the dijit for a typeAhead in XPages)

Setzen Sie den folgenden Code auf Ihrem onClientLoad clientseitige Javascript des XPage oder CC:

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

X1 jede eindeutige Kennung sein muss auch das onchange Attribut aus dem Code entfernen

..
+0

Vielen Dank für die Antwort Ich habe versucht, Ihre zu implementieren Lösung (und auch die von Markys Frage), aber es scheint nichts zu tun. Gleiche Ergebnisse - kein Feuern des Ereignisses. –

+0

Entschuldigung, ich vermasselte eine schnelle Antwort. Ich habe oben Code getestet, es funktioniert. XSP.addOnLoad und dojo.addOnLoad funktioniert anders, denke ich. –

+0

Es funktioniert tatsächlich !! Komisch, ich habe gerade eine Lösung gefunden, bei der ich den Wert aus dem valuePicker in ein verstecktes inputText Feld setzte, dann eine partielle Aktualisierung auf listTextBox basierend auf dem versteckten Feldwert und dann für das onclick Ereignis der listTextBox (die auf ihrem funktioniert) eigene) Ich habe den versteckten inputText aktualisiert .. Eine käsige Lösung .. aber es hat funktioniert. Ich mag deine Lösung besser. Danke noch einmal! –

Verwandte Themen