af:popup mit Übernahme der Änderungen in einer Erfassungsmaske

Problem:

In einer Erfassungs- oder Änderungsmaske soll über ein Popup-Dialog Daten eingegeben werdne, die anschließend in der aufrufenden Seite (hier eine Erfassungs- oder Änderungsmaske) angezeigt werden sollen.

Lösungsversuche:

Da der Dialog über einen Event verlassen wird, liegt es natürlich nahe, die Daten aus dem PopUp in einer Bean, die den Event verarbeitet, in die entsprechenden Datenwerte der Erfassungsmaske einzutragen. Leider tut sich an der Oberfläsche dannaber nicht, sprich, der Anwender sieht immer noch die alten Daten.

Alle Versuche über den BindingContainer (refresh oder auch direktes Änderen der Daten in der Attributliste des BindingContainer) helfen hier auch nicht.

In seinem Blog hat Shay Shmeltzer (http://blogs.oracle.com/shay/2008/05/13/#a683) den Lösungsansatz skizziert. Leider hat er es aber so ausgedrückt, als ob diese Lösung nur mit Tabellen funktioniet. Im Forum fand ich dann den Hinweis von Frank Nimphius (http://forums.oracle.com/forums/thread.jspa?messageID=2280508&#2280508), dass das auch mit anderen Komponenten geht.

Lösung:

Es ist aslo nur notwendig, das Panel (oder sonstige Gruppierungskomponente) in die Bean zu binden, die die PopupDaten verarbeiten soll und dann diese Komponente als PartialTarget einzutragen.

// gebundene Komponente, die die Attribute enthält
private RichPanelGroupLayout mainAttribute;
...

RequestContext.getCurrentInstance().addPartialTarget(mainAttribute);

Das aktuallisiert dann das Binding auf der Seite und zeigt die neuen Werte an.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s