Frage

Nach der Lektüre viel Beispiel über das Hinzufügen von neuen Komponenten in zu vorhandenen Containern ohne ganze Seite neu zu laden ich kleines Problem zulaufen, während der Kombination von Baum und Tabs innerhalb des Ansichtsfensters Komponente.

Was ich versuche zu tun, auf Click-Ereignisse Baumknoten registrieren und um Inhalt Container neue Komponente zu laden, je nach Knotentyp kann es TabPanel, Gridpanel oder andere verfügbare Komponente sein.

Hier ist kurz Beispiel Baumobjekt:

{
    xtype: 'treepanel',
    id: 'tree-panel',
    listeners: {
        click: function(n) {

            var content = Ext.getCmp('content-panel');

            content.setTitle(n.attributes.qtip);

            //remove all components from content-panel
            content.removeAll();

            content.add(dummy_tabs2);

            content.doLayout();

            return;
        }
    }
}

Alle DOM-Manipulation ging gut, alles richtig registriert, neue Titel gezeigt, aber dummy_tabs2 sind nicht dargestellt. Ich habe versucht verschiedene Eigenschaften für doLayout (true | false, true | false) zu setzen. Aber es passiert nichts

Mache ich etwas falsch?

War es hilfreich?

Lösung

Jetzt bekomme ich es funktioniert gut, aber DOM EXTJS Display versteckte Eigenschaft Anwendung auf neu eingefügte Elemente. Also, was noch zu tun ist, zu zeigen () Funktion auf unsere neue Komponente. Code Folowing würde wie folgt aussehen:

{
  xtype: 'treepanel',
  id: 'tree-panel',
  listeners: {
    click: function(n) {

    var content = Ext.getCmp('content-panel');

    content.setTitle(n.attributes.qtip);

    //remove all components from content-panel
    content.removeAll();

    var container = content.add(dummy_tabs2);

    content.doLayout();

    container.show();

    return;
    }
}}

Andere Tipps

Versuchen Sie, die Breite und Höhe des dummy_tabs2 vor doLayout einzustellen. Untersuchen Sie mit Firebug, vielleicht das Panel ist da, aber man kann nicht sehen.

Read Ext.Panel in der API .

  

Wenn entweder die Angabe untergeordnete Elemente von   ein Panel oder dynamisch hinzugefügt   Komponenten auf eine Platte, denken Sie daran,   Sehen Sie, wie Sie das Panel möchten   diese untergeordneten Elemente anordnen und   ob diese untergeordneten Elemente müssen   bemessen sein, eine von Ext-internen Verwendung   Layout-Schemata. Standardmäßig Panels verwenden   das ContainerLayout Schema. Diese   einfach Kind Komponenten macht,   Anfügen sie eine nach der anderen   im Inneren des Behälters, und nicht   gilt überhaupt Sizing.

Hope dies dazu beitragen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top