Autor Thema: Data binding bei Feldern im Repeat Control  (Gelesen 56519 mal)

Offline vietzer

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Data binding bei Feldern im Repeat Control
« 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?
« Letzte Änderung: 19.08.11 - 08:55:02 von vietzer »
Gruß, Steffen

Offline Jens Winkelmann

  • Junior Mitglied
  • **
  • Beiträge: 53
  • Geschlecht: Männlich
  • Jens Winkelmann
    • PAVONE AG
Re: Data binding bei Feldern im Repeat Control
« Antwort #1 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.

Offline vietzer

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Re: Data binding bei Feldern im Repeat Control
« Antwort #2 am: 19.08.11 - 08:54:40 »
Hallo Jens,

dankeschön. Funktioniert einwandfrei!
Gruß, Steffen

Offline Flachmann

  • Senior Mitglied
  • ****
  • Beiträge: 284
  • Geschlecht: Männlich
  • Mal wieder: Flachmann ist Schuld!
Re: Data binding bei Feldern im Repeat Control
« Antwort #3 am: 19.06.12 - 14:26:08 »
(Vergesst bitte die Frage hier, war falsch, sorry!)  :'(
« Letzte Änderung: 19.06.12 - 14:36:20 von Flachmann »
Gruß,
  __________
  _/_
  /lachmann

Offline LN1991

  • Frischling
  • *
  • Beiträge: 27
Re: Data binding bei Feldern im Repeat Control
« Antwort #4 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.
« Letzte Änderung: 10.10.18 - 19:54:04 von LN1991 »
Gruss Helmut

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz