Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: manderson am 07.05.12 - 14:52:32

Titel: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: manderson am 07.05.12 - 14:52:32
Hallo allerseits!

Könnte etwas Hilfe gebrauchen.

Ich habe eine Xpage in welche der User existierde Daten bearbeiten kann. Auf der Xpage befindet sich ein Textfeld namens "ID". Von dieser Xpage kommt der User auch per Button-Link auf eine XPage wo er ein neues Document anlegen kann, was auch ein Textfeld namens "ID" hat.

Klickt der User auf den Button und landet so auf der zweiten XPage, soll der Wert aus dem Textfeld "ID" mit übernommen werden und auf der zweiten Xpage im gleichnamigen Textfeld "ID" eingetragen werden.

Mein Kopf raucht schon, doch ich finde keine Lösung.....
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: m3 am 07.05.12 - 15:22:51
SessionScope Variable oder URL-Parameter.
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: manderson am 07.05.12 - 15:36:59
Danke, hast du nen beispiel wie man mit SessionScope Variable das macht?

Habe auf den Button-Link folgendes, bei onclick:

sessionScope.values(document1.getItemValue("ID"));

und beim 2 texfeld, vorgabewert, beim laden der seite:

viewScope.values=sessionScope.values;

Bekomme ne 500 im Client angezeigt ....


 :-:
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: m3 am 07.05.12 - 15:53:07
1) XPages Fehlermeldungen in den Anwendungseigenschaften aufdrehen, dann solltest Du den Fehler finden.

2) "document1.getItemValue" liefert - wie in Lotusscript - ein Array zurueck.

2) MIt
Code
sessionScope.values(document1.getItemValue("ID"));
kommst nicht weit. Du musst der sessionVariable auch einen Namen geben. Probier mal
Code
sessionScope.atnotesID = document1.getItemValueString("ID");
und dann auch entsprechend auslesen.



Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: Sven Hasselbach am 07.05.12 - 15:53:53
Du kannst auch das Binding des jew. Feldes direkt an den Sessionscope koppeln und als Default-Wert des Textfeldes auf der zweiten Seite verwenden:

Page 1.xsp

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

	<xp:inputText id="inputText1" value="#{sessionScope.Text}"></xp:inputText>
	<xp:button value="Label" id="button1">
		<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
			<xp:this.action>
				<xp:openPage name="/Page2.xsp"></xp:openPage>
			</xp:this.action>
		</xp:eventHandler>
	</xp:button>
	
</xp:view>


Page2.xsp

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:inputText id="inputText1" value="#{document1.ID}"
		defaultValue="#{javascript:sessionScope.Text}">
	</xp:inputText>
	
</xp:view>


Sven
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: m3 am 07.05.12 - 15:58:48
Dann kann ers aber nicht autom. ins Dokument schreiben, IIRC.
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: Sven Hasselbach am 07.05.12 - 16:02:26
Wieso nicht? Beim Öffnen der zweiten Seite wird das Feld mit dem Wert aus dem Sessionscope befüllt. Das Binding speichert den Wert dann im document1.
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: m3 am 07.05.12 - 16:05:29
Wieso nicht? Beim Öffnen der zweiten Seite wird das Feld mit dem Wert aus dem Sessionscope befüllt. Das Binding speichert den Wert dann im document1.
Mein Fehler. Das Binding bezog sich in Deinem Beispiuel auf die erste Xpage. So gehts natuerlich.

ich vermute allerdings, dass er fuer beide Dokumente die gleiche Xpage verwenden will.
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: ata am 07.05.12 - 16:06:04
... ich setzte und hole Werte für sessionScope-Variablen mit

sessionScope.put("VARIABLENNAME" , "Lorem ipsum...");
var sValue = sessionScope.get("VARIABLENNAME");

Damit klappt das bei mir ;) - oder sitze ich auf der Leitung?
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: manderson am 07.05.12 - 16:06:13
Tausend dank an alle!

Also button mit:

sessionScope.put('meineID', document1.getItemValue("ID"))

und das zweite feld mit:

sessionScope.get('meineID')

Funktionert einwandfrei :)
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: ata am 07.05.12 - 16:08:35
... ich war schon am zweifeln ;)
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: m3 am 07.05.12 - 16:11:10
... ich setzte und hole Werte für sessionScope-Variablen mit

sessionScope.put("VARIABLENNAME" , "Lorem ipsum...");
var sValue = sessionScope.get("VARIABLENNAME");

Damit klappt das bei mir ;) - oder sitze ich auf der Leitung?

get/put geht natuerlich auch. Aber values ...
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: manderson am 07.05.12 - 16:25:26
hmmm wenn ich folgendes beim zweitentextfeld hinzufüge gibt es wieder 500... :'(

sessionScope.clear()

auch

sessionScope.clear('meineID')

gibt 500 :(

 :-:
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: ata am 07.05.12 - 16:28:45
... setze sie doch leer - nach der Session ist die Variable eh nicht mehr da - ist ja nicht wie im Environment ;)

@Martin (m3)
Zitat
get/put geht natuerlich auch. Aber values ...

... ich hatte mit values so meine Probleme - seither mache ich es so...
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: manderson am 07.05.12 - 16:42:22
habe sie nun leer gesetzt und beim button das script von server auf client geändert, da vorher probleme auftauchten als ich die scope leer gesetzt habe....
Titel: Re: Wert aus einen Textfeld an ein anderes übergeben
Beitrag von: Sven Hasselbach am 07.05.12 - 16:43:53
hmmm wenn ich folgendes beim zweitentextfeld hinzufüge gibt es wieder 500... :'(

sessionScope.clear()

auch

sessionScope.clear('meineID')

gibt 500 :(

 :-:

Ein sessionScope.clear() würde den SessionScope komplett löschen und wurde daher deaktiviert. Du solltest  unbedingt die Error-Seite einschalten, dann gibt es nicht nur 500er-Seiten sondern einen aussagekräftigen Stacktrace.

Probiers mal mit
Code
sessionScope.remove( 'meineID' )