Hallo,
Domino 8.5.3 mit Upgrade Pack 1 kommt hier zum Einsatz. Ich versuche gerade, eine bestehende Anwendung via XPages und die Mobile Controls der ExtLib/des Upgrade Packs für den Einsatz auf Tablets bzw. Smartphones "aufzuhübschen".
Zugrunde liegt eine View mit 3 Kategorieebenen. Die Darstellung der kategorisierten View in einer Data View ist so nicht gewünscht und soll daher durch mehrere Auswahllisten mit den jeweiligen Kategorien ersetzt werden.
Ablauf beim Start der Anwendung wäre dann in etwa so :
- Auswahlliste mit Kategorien der ersten Ebene
- Auswahl einer Kategorie schreibt den Wert in eine Scope Variable
- Öffnen einer Auswahlliste mit allen Kategorien der zweiten Ebene, passend zur gewählten Kategorie 1
- Auswahl einer Kategorie schreibt den Wert in eine Scope Variable
- Öffnen einer Auswahlliste mit allen Kategorien der dritten Ebene, passend zur gewählten Kategorie 1+2
- Auswahl einer Kategorie schreibt den Wert in eine Scope Variable
- Öffnen einer Ansicht mit einem Filter über die drei gewählten Kategorien
Den ersten Punkt bekomme ich ohne Probleme umgesetzt, das sieht dann so aus :
<xe:appPage id="appPage6" pageName="vvaByCategory" preload="true" resetContent="true">
<xe:djxmHeading id="djxmHeading8" label="choose category" back="Back" moveTo="home">
</xe:djxmHeading>
<xp:repeat id="repeat1" rows="30" var="rowData" indexVar="index">
<xp:this.value><![CDATA[#{javascript:@Unique(@DbColumn("","xVVAByCategory",1));}]]></xp:this.value>
<xe:djxmLineItem id="djxmLineItem6" label="#{javascript:rowData}" transition="slide" moveTo="#vvaByCategory2">
</xe:djxmLineItem>
</xp:repeat>
</xe:appPage>
Das Problem ist, daß ich an dieser Stelle das Label des gewählten Eintrags aus der Liste bzw. den aktuellen Wert aus rowData für diesen Eintrag nicht ermitteln und in eine Scope Variable schreiben kann. Oder ich weiß nicht wie.
Das Problem ist auch in einem anderen Thread schon beschrieben, allerdings ohne Lösung :
http://atnotes.de/index.php?topic=54137.0Ausprobiert habe ich schon die Abwicklung über xe:this.moveTo, allerdings mit dem selben Ergebnis, daß der letzte Wert aus der Datenquelle in der Scope Variable landet und nicht er Wert des gewählten Eintrags.
Ich habe auch versucht, einen Event Handler innerhalb des Controls einzubauen. Das funktioniert aber anscheinend überhaupt nicht. Ich bekomme zwar keinen Fehler, aber leider auch kein Ergebnis.
<xp:eventHandler event="onClick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:sessionScope.put("categoryPicker1", rowData);}]]>
</xp:this.script>
</xp:executeScript>
</xp:this.action>
</xp:eventHandler>
Hat jemand eine Idee dazu ? Ich würde das schon gerne über das Repeat Control und die Static Line Items lösen.