Autor Thema: XPage Computed Data Source  (Gelesen 2674 mal)

Matze84

  • Gast
XPage Computed Data Source
« am: 03.06.14 - 07:54:26 »
Guten Morgen zusammen :)

Ich sitze jetzt seit längerem an einem Problem, bei dem ich absolut alles mir bekannte versucht habe, um weiterzukommen, aber
mir irgendwie die Möglichkeiten ausgegangen sind.

Ich habe eine XPage  mit einer View. Durch markieren von View Entries soll über folgenden Code die UNID des markierten Dokuments in eine ViewScope Variable geschrieben werden

Code
<xp:button value="Öffnen" id="buttonOeffnen"
								styleClass="buttonOeffnen">
								<xp:eventHandler event="onclick"
									submit="true" refreshMode="partial"
									refreshId="panelAntragBearbeiten" immediate="false"
									save="false">
									<xp:this.action><![CDATA[#{javascript:var viewPanel=getComponent("viewMeineAntraege");
var docIDs=viewPanel.getSelectedIds();
if(docIDs.length > 1){
	view.postScript("alert('Bitte nur ein Antrag wählen.');")
}else if(docIDs.length == 0){
	view.postScript("alert('Bitte Antrag auswählen.');")
}else{
	var doc:NotesDocument = database.getDocumentByID(docIDs[0])
	viewScope.put("unid", doc.getUniversalID().toString());
	var status = doc.getItemValueString("StatusTX");
	if(status === "entwurf"){
		view.postScript("tabEntwurfBearbeitenOeffnen()");
	}else{
		view.postScript("tabAntragBearbeitenOeffnen()")	
	}	
}

view.postScript("XSP.partialRefreshGet('#{id:panelAntragBearbeiten}')")}]]></xp:this.action>
								</xp:eventHandler>
							</xp:button>

Auf der XPage befindet sich außerdem eine Include Page, die als Default action  "Edit Document"  und
als die Dokumenten ID berechnet.

Code
<xp:this.data>
		<xp:dominoDocument var="document1" formName="Veroeffentlichung"
			action="editDocument" scope="view">
			<xp:this.documentId><![CDATA[#{javascript:viewScope.get("unid");

}]]></xp:this.documentId>
		</xp:dominoDocument>
	</xp:this.data>

Es ergibt sich jetzt folgendes Problem. Wenn ich die XPage lade und ein Dokument in der View markiere,
dann öffnet sich die Include Page wie erwartet mit den Daten des Dokuments. Wenn ich jedoch versuche
eine weiteres Dokument zu markieren und dann den Button zum Laden in die Include Page drücke, wird die
Button Action nicht mehr ausgelöst.

Ich konnte das Problem soweit eingrenzen, dass wohl die Include Page (da die Document ID auf "Compute
Dynamically" steht) die ViewScope Variable sperrt und kein Ändern des Inhalts zulässt.
Wenn ich auf "Compute auf Page Load"  umstelle, dann kann ich über einen Partial Refresh der Include Page
nicht dafür sorgen, dass die neue UNID eingelesen wird.

Hat jemand eine Idee?

Gruß

Matthias

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz