EXT JS zu Layout auf Ansichtsfenster zeigt nichts
-
06-07-2019 - |
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?
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.