Hallo!
Als XPage-Neuling habe ich hier viele Tipps gefunden. Vielen Dank für dieses tolle Forum!
Z.Z. hänge ich an folgendem Probem
(R8.5.3), denke, dass ich einfach nur einen Denkfehler habe, finde aber keine Lösung.
In einer Repeat Control zeige ich Labels und Felder an, die aus einem Dokuments ermittelt werden. Welche Felder bzw. welcher Bereich angezeigt werden sollen, gestimmt der Benutzer über eine Radio Button Control oberhalb des Repeat Controls. Im Notes-Dokument heißen die Felder quasi "Bereich_Index_Feld". D.h.aus dem Radio Button Control ermittle ich den gewünschten Bereich, index ist einfach der Index des Repeat Controlss. Die Anzahl der Felder pro Bereich ist unterschiedlich, und mit einem Repeat Control lässt sich das wunderbar lösen.
Die Labels und Felder sind
nicht mit Simple data binding mit dem Dokument verknüpft, sondern werden "dynamisch berechnet", in etwa so:
defaultValue="#{javascript:doc.getItemValueString(sessionScope.Bereich + '_' + rowIdx + '_Feld')}". Das ganze funktioniert soweit sehr gut.
Mein Problem ist, dass ich nach einem Wechsel des Bereichs der defaultValue nicht mehr berechnet wird. Mein Radio Button Control oberhalb des Repeats löst zwar einen onchange-Event aus, der die Variable sessionScope.Bereich setzt, die Seite berechnet sich auch, nur die
Feldwerte werden nicht mehr neu ermittelt. D.h. die Felderwerte enthalten die erfassten Daten eines zuvor bearbeiteten Bereichs.
Ist eigentlich logisch, denn die Felder sind ja nicht gebunden und defaultValue wird nicht ausgeführt, weil ja schon Werte vorhanden sind. Es würde vielleicht schon genügen, wenn man dynamisch auf eine viewScope- oder requestScope-Variable zugreifen könnte, aber da bin ich mit meinem Latein am Ende, zumal wohl auch keine Änderung des Bindings möglich scheint.
Im klassischen Notes würde man sich wahrscheinlich an den Onchange-Event des Radio Buttons hängen und die Tabelle darunter füllen. Aber in einem Repeat Control komme ich so ohne weiteres nicht an die einzelnen Felder.
Danke für jeglichen Vorschlag!