Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: vietzer am 18.08.11 - 14:53:10

Titel: Data binding bei Feldern im Repeat Control
Beitrag von: vietzer am 18.08.11 - 14:53:10
Hallo,

in einem Dokument gibt es pro Sprache verschiedene Felder für Inhalte also z.B. Title_DE,Title_EN,Title_PL usw...

Ich habe in meiner XPage nun ein RepeatControl eingefügt in dem sich eine EditBox befindet welches die Inhalte aus dem Dokument anzeigen soll.
Das Control iteriert über die Liste der verfügbaren Sprachen und das Feld wird dann dementsprechend auch dreimal angezeigt (für DE,EN und PL).

Allerdings schaffe ich es nicht die Werte aus dem Dokument in den Feldern der XPage anzuzeigen.
Wie kann ich das beim Data-Binding für das Feld angeben dass er auch den aktuellen Wert aus dem RepeatControl (also z.B. DE oder EN) mit einbezieht?
Titel: Re: Data binding bei Feldern im Repeat Control
Beitrag von: Jens Winkelmann am 18.08.11 - 20:04:58
Das Beispiel sollte funktionieren:

Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

	<xp:this.data>
		<xp:dominoDocument var="document1"></xp:dominoDocument>
	</xp:this.data>
	
	<xp:repeat
		id="repeat1"
		rows="30"
		var="varcollection"
		repeatControls="true">
		<xp:this.value><![CDATA[${javascript:return @Explode("de,en,pl",",");}]]></xp:this.value>

		<xp:inputText
			id="inputText1"
			loaded="true">
			<xp:this.value><![CDATA[${javascript:var fieldName = "Help_" + varcollection;
return '#{currentDocument.' + fieldName + '}';}]]></xp:this.value>
		</xp:inputText>
		<xp:br></xp:br>

	</xp:repeat>
	
                <xp:button
		value="Submit"
		id="button1">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
</xp:view>

Der Kniff bei der Sache ist, dass man die Datenanbindung auch via JavaScript berechnen kann.
Der JavaScript Code berechnet einen Expression Language Ausdruck und gibt diesen zurück.

Wichtig ist, dass man 'Compute on Page load' setzt.
Titel: Re: Data binding bei Feldern im Repeat Control
Beitrag von: vietzer am 19.08.11 - 08:54:40
Hallo Jens,

dankeschön. Funktioniert einwandfrei!
Titel: Re: Data binding bei Feldern im Repeat Control
Beitrag von: Flachmann am 19.06.12 - 14:26:08
(Vergesst bitte die Frage hier, war falsch, sorry!)  :'(
Titel: Re: Data binding bei Feldern im Repeat Control
Beitrag von: LN1991 am 10.10.18 - 19:37:46
Der Kniff bei der Sache ist, dass man die Datenanbindung auch via JavaScript berechnen kann.
Der JavaScript Code berechnet einen Expression Language Ausdruck und gibt diesen zurück.

Vielen Dank für den wertvollen Tipp. Ich konnte den Code schon sinnvoll einsetzen.
Doch jetzt stehe ich vor der Problematik, die Eingabe zu validieren.
Konkret muss ich protokollieren, in welchen Feldern aus der dynamischen Liste eine Änderung vorgenommen wurde.
Der Wert des jeweiligen Feldes erhalte ich über "this.getParent().getValue();"
Wie kann ich noch den Namen des Feldes feststellen?
Hierbei könnte ich Hilfe gebrauchen.