2016-12-21 1 views
0

Ich habe Hauptseite (JSPX in ADF 11gR1), in dem ich ein Popup mit in einer Region erstellt habe. Im popup versuche ich, bestimmte ArrayList von Werten zu suchen, und ich möchte, dass es diese ArrayList-Werte an die Hauptseite durch einen Knopfklick sendet.Wie man die Tabelle in der Hauptseite aktualisiert und Popup in ADF 11gr1 mit in Popup

Ich war in der Lage, die obige Anforderung zu erfüllen, indem ich kontextuelles Ereignis aus dem Popup-Bean aufruft und das Ereignis in der Main-Page-Bean behandle. Beide Beans befinden sich im Seitenflussbereich.

Haupttabelle ist an MainTableBinding gebunden Richttabelle und Popup ist an PopupBinding RichPopup gebunden, die in MainPageBean definiert sind.

Jetzt in der Main-Bean, wenn ich versuche, das Popup zu schließen und die Tabelle über das kontextbezogene Handle-Ereignis zu aktualisieren, kann ich es nicht tun, da es Zeigerfehler wirft, die das Popupbinding und die MainTablebinding tun nicht existieren. Irgendwelche Hilfe bei der Lösung dieses Problems.

Antwort

0

Im Allgemeinen möchte ich keine UI-Objekte an Bean binden, sondern JSFUtils in der Bean verwenden, um die Komponente zu finden. Wenn Sie keine JSFUtils (und ADFUtils) -Klasse haben, sollten Sie in der Lage sein, mit einer einfachen Websuche zu finden.

dann von Hauptseite Bohne können Sie tun so etwas wie:

RichPopup pop = (RichPopup)JSFUtils.findComponentInRoot("popupid"); 
if (pop != null) { 
    pop.hide(); 
} 

Hinweis gibt es Fälle, in denen Sie die Region-ID als auch angeben müssen, wenn eine Komponente von ID, zum Beispiel Ortung, wenn Sie viele Regionen haben auf der Hauptseite mit demselben Popupid in jeder Region. Verwenden Sie zum Beispiel Chrome "Inspect", um die ID des Popups zu erhalten, das das Region-ID-Präfix enthält.

Sie können Tabelle mit einem ähnlichen Ansatz aktualisieren:

ADFFacesContext.getCurrentInstance().addPartialTarget(JSFUtils.findComponentInRoot("tableId")); 

Der Schlüssel ist, eine Kopie der JSFUtils und ADFUtils Bibliotheken für diesen Ansatz zur Arbeit zu kommen.

+0

Ich bin in der Lage, das Popup zu schließen, aber aus irgendeinem Grund wird die Haupttabelle überhaupt nicht aktualisiert ... Ich kann sehen, dass die Komponente gefunden wird .. aber kein Glück :( –

+0

Versuchen Sie, einen Griff zu erhalten Iterator in der Tabelle und erneut ausführen der Abfrage und/oder aktualisieren Sie den Iterator Dann aktualisieren Sie die Komponente mit dem obigen Code – 32U

+0

der Iterator wird von Bean-Daten-Steuerelement erstellt .. Alle Mittel versucht, durch erneutes Ausführen und Hinzufügen von partiellen Triggern zu aktualisieren. Aber nichts funktioniert ... Es wird nur aktualisiert und ich kann sehen, dass die neuen Bean-Werte aktualisiert werden, indem die Größe der Bean überprüft wird ... aber die Tabelle bleibt so wie sie ist. –

Verwandte Themen