Autor Thema: computedField DataBinding  (Gelesen 3316 mal)

Matze84

  • Gast
computedField DataBinding
« am: 02.04.13 - 12:15:26 »
Guten Morgen zusammen!

Ich stehe mal wieder vor einem XPages- spezifischen Problem ??? ???

Ich habe eine XPage mit einem computedField. Dieses bekommt über eine Button-Action einen Wert zugewiesen und soll diesen Wert beim Speichern der XPage in die Maske (Data Source) speichern.  Aktuell habe ich das ganze über das Simple Data Binding an ein Feld auf der Maske gebunden.
Das Problem ist jetzt, dass der Wert des computedFields beim Speichern nicht in der Maske auftaucht, sondern das Feld leer bleibt.

Funktioniert das grundsätzlich nicht?

Hier mal den Code einer Test-XPage, mit der ich das ganze gestestet habe:
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" formName="Test"></xp:dominoDocument>
	</xp:this.data>


	Berechnetes Feld:&#160;
	<xp:text escape="true" id="computedField1" value="#{document1.TestTX}"></xp:text>
	<xp:button value="Setze Wert" id="button2">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="partial" refreshId="computedField1">
			<xp:this.action><![CDATA[#{javascript:getComponent("computedField1").setValue("setze Wert");}]]></xp:this.action>
		</xp:eventHandler></xp:button>
	<xp:br></xp:br>
	<xp:br></xp:br>Referenz Edit Box:&#160;
	<xp:inputText id="EditBox" value="#{document1.Test2TX}"></xp:inputText>
	<xp:br></xp:br>
	<xp:br></xp:br>
	<xp:br></xp:br>
	<xp:button value="Submit" id="button1">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true"></xp:eventHandler>
	</xp:button>
	<xp:br></xp:br>
	<xp:br></xp:br>
	<xp:br></xp:br>
	<xp:br></xp:br>
	</xp:view>

Gruß

Matthias

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: computedField DataBinding
« Antwort #1 am: 02.04.13 - 12:29:04 »
Ein computedField ist readOnly und wird daher nicht in die Datenquelle übertragen. Du kannst den Wert der Datenquelle direkt setzen, dann wird die Änderung auch ins Dokument übertragen:

Code
	<xp:button value="Setze Wert" id="button2">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="partial" refreshId="computedField1">
			<xp:this.action><![CDATA[#{javascript:document1.setValue("TestTX", "setze Wert");}]]></xp:this.action>
		</xp:eventHandler>
	</xp:button>

Matze84

  • Gast
Re: computedField DataBinding
« Antwort #2 am: 02.04.13 - 12:32:00 »
Ein computedField ist readOnly und wird daher nicht in die Datenquelle übertragen. Du kannst den Wert der Datenquelle direkt setzen, dann wird die Änderung auch ins Dokument übertragen:

Code
	<xp:button value="Setze Wert" id="button2">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="partial" refreshId="computedField1">
			<xp:this.action><![CDATA[#{javascript:document1.setValue("TestTX", "setze Wert");}]]></xp:this.action>
		</xp:eventHandler>
	</xp:button>

Danke für die rasche Antwort!

Wird beim Setzen des Wertes über document1.setValue() bereits ein Save des Backend-Documents durchgeführt?

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: computedField DataBinding
« Antwort #3 am: 02.04.13 - 12:42:55 »
Zitat
Wird beim Setzen des Wertes über document1.setValue() bereits ein Save des Backend-Documents durchgeführt?
Nein, nur der Wert der Datenquelle geändert. Die Datenquelle ist wie das NotesUIDocument.

Matze84

  • Gast
Re: computedField DataBinding
« Antwort #4 am: 02.04.13 - 13:22:26 »
Danke! ;D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz