2016-08-05 70 views
0

Ich arbeite mit zwei Web-Dynpro-Java-Komponenten (SAP NetWeaver Developer Studio 7.0), wo die erste Komponente ein anderes einbettet und es in einem Popup-Fenster verwendet.Rufen Eltern-Komponente Methode in Web-Dynpro-Java

Die eingebettete Komponente hat eine Methode, die bei einem Klick auf die Schaltfläche ausgelöst wird. Nach dieser Methodenausführung muss ich eine Einbettungskomponentenmethode aufrufen.

Sollte ich die Web-Dynpro-Component-Schnittstelle verwenden, um die Methode der eingebetteten Komponente aufzurufen?

+1

Willkommen bei Stack Overflow! Ich habe deine Frage soweit bearbeitet, wie ich dein Problem erraten konnte. Fügen Sie jedoch Code und Beschreibung hinzu, damit mehr Personen mit Wissen über das Thema sie sehen können. Bitte editieren Sie in der spezifischen Fehlermeldung, die Sie antreffen, falls es notwendig ist, das spezifische Problem zu identifizieren. Viel Glück! – manetsus

Antwort

0

Genau! Die Schritte sollten Sie Vorform sind:

  1. die Wrapper Methode erstellen (mit der gleichen Signatur) im Interface Controller Ihr Komp1 (Einbettung) Komponente und rufen notwendige Komponente Controller-Methode gibt

    wdThis.wdGetComp1Controller.doSmth() 
    
  2. Fügen Sie Comp1 dem verwendeten Teil Ihrer Comp2 (Embedded) Komponente hinzu.

  3. Fügen Sie die Verwendungsdeklaration des Schnittstellencontrollers zum Comp2-Komponentencontroller auf der Registerkarte Eigenschaften hinzu.
  4. Jetzt können Sie in der Lage Methoden Ihrer Einbettung Komponente zuzugreifen (Komp1) wie dieses

    wdThis.wdGetComp1Interface().doSmth(); 
    
0

Das Problem war, auf diese Weise gelöst:

Die eingebettete Komponente eine Taste hat, der wird ein Interface Controller Event auslösen.

  1. Auf der Komponente, die wir als eingebettete Komponente verwenden, erstellen wir ein Interface Controller-Ereignis. Dieses Ereignis wird von der übergeordneten Komponentenmethode erfasst.
  2. Fügen Sie die eingebettete Komponente zur übergeordneten Komponente im Abschnitt "DC MetaData> DC-Definition> Benutzte DCs" hinzu.
  3. Dann fügen Sie es das „Used Web Dynpro Components“
  4. Am Stammkomponente, öffnen Sie die Diagrammansicht des Web-Dynpro-Component und eine Beziehung hinzufügen aus der Component auf das verwendete Web-Dynpro-Component gehen.
  5. Fügen Sie im übergeordneten ComponentController einen Ereignishandler im Abschnitt der Methode hinzu, wählen Sie die Web-Dynpro-Komponente als Quelle des Ereignisses und das Ereignis aus, das die übergeordnete Komponente in der neuen Methode abfangen wird.