Autor Thema: ExtLib / Mobile Controls - Umsetzung von Kategorien als Auswahl  (Gelesen 6375 mal)

Driri

  • Gast
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 :

Code
<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.0

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

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

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Zitat
Ich bekomme zwar keinen Fehler, aber leider auch kein Ergebnis.
... das kenne ich - ich habe mir dann angewöhnt einen String anzuhängen - dann sehe ich wenigstens was in der ScopeVariablen landet ...

=> rowData + ""

... wäre so ein Versuch - eventuell kommt hier null zurück oder ähnliches
Grüßle Toni :)

Driri

  • Gast
Da kommt gar nichts an, also die Scope Variable bleibt leer. Das läßt vermuten, daß der Event Handler an dieser Stelle ignoriert wird.

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... schreibst du was explizit rein?
Grüßle Toni :)

Driri

  • Gast
Im Event Handler testweise schon. Darum denke ich ja, daß der da gar nicht berücksichtigt wird. Sonst müßte zumindest der statische Inhalt der Scope angezeigt werden.

Zum besseren Verständnis : Ich habe den dynamischen Teil der Zuweisung durch einen statischen ergänzt.

Code
<xp:this.script><![CDATA[#{javascript:sessionScope.put("categoryPicker1", "~~" + rowData);}]]>

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... so scheint es tatsächlich - ich hatte was ähnliches - ich forsche mal bei mir - irgendwie hab ich hier ein Deja-vu - ich hatte es dann anders gelöst, weil ich irgendwie nicht weiterkam..
Grüßle Toni :)

Driri

  • Gast
Super, danke  :)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... ich bin darauf gestossen - es ging in meinem Fall darum, dass ich in einem RepeatControl onClick-Ereignisse in Bezug zum durchlaufenen Dokument berechnen wollte. Das onClick reagierte nicht...

Mit rowData arbeitest du SSJS - das onClick ist aber Client-side. Beim Zugriff auf rowData kann das onClick nicht reagieren - das Objekt ist nicht vorhanden - Im FireBug war das auch so ausgegeben worden.

In meinem Fall habe ich eine URL berechnet, die dann das Ergebnis lieferte...

Kann es das auch bei dir sein?
Grüßle Toni :)

Driri

  • Gast
Das dürfte wohl das Problem sein. Muß ich mal prüfen.

Das mit der URL ist eine gute Idee, werde ich mal probieren.

Danke Dir  :)

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Ich hatte das auch unlaengst bei einem Kundenprojekt. Wir haben das dann ein bissl anders geloest. Ich werd mal schaun, ob ich den Code auf die Schnelle finde.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Driri

  • Gast
Für weiteren Input bin ich natürlich immer zu haben. Danke, Martin.

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Zitat
Ich hatte das auch unlaengst bei einem Kundenprojekt.

... und ich dachte schon das passiert nur mir ;)  ;D ;D ;D
Grüßle Toni :)

Driri

  • Gast
Also mit einer zusammengestrickten URL funktioniert es. Finde ich allerdings nicht ideal, denn da muß man schon etwas basteln, um das sauber hinzukriegen. Z.B. werden ja Leer- oder Sonderzeichen in der URL umkodiert.

Ok, das umkodieren funktioniert allerdings recht simpel :

Code
var result = java.net.URLDecoder.decode(urlstring,"UTF-8");
return result; 
« Letzte Änderung: 01.06.12 - 09:57:10 von Driri »

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... ich hab' das bei mir noch auf der Agenda - prio aber nicht zu hoch, da es mit diesem Umweg soweit klappt ...  ;D ;D ;D
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz