Was ist die syntax zum hinzufügen eines Bedienfelds zu einer viewport-Komponente?
Aus den Beispielen, die ich gefunden habe, sollte dieser code fügen Sie die newPanel
zu viewport
als seine Ost-region, aber es tut sich einfach nichts:
var viewport = new Ext.Viewport({
layout: 'border',
items: [ regionMenu, regionContent ]
});
var newPanel = new Ext.Panel({
region: 'east',
width: 300,
html: 'this is a panel that is added'
});
viewport.add(newPanel);
Wie kann ich ein neues panel an ein viewport?
Nachtrag
Ich habe es zu arbeiten, hier ist der Haupt-code für diejenigen, die mit dem gleichen Problem, ich bin mir nicht hinzufügen, um den viewport sondern auf die region innerhalb des Arbeitsbereichs, und ich leere die region von deren Inhalt vor, die ich hinzufügen neuer Inhalte:
Ext.onReady(function(){
...
regionContent = new Ext.Panel({
id: 'contentArea',
region: 'center',
padding:'10',
autoScroll: true
});
var viewport = new Ext.Viewport({
layout: 'border',
items: [ regionMenu, regionContent ]
});
clearExtjsComponent(regionContent);
var start_info_panel = new Ext.Panel({
title: 'Start Info',
padding: 10,
width: 300,
html: 'this panel was added from the start view'
});
regionContent.add(start_info_panel);
regionContent.doLayout();
});
function clearExtjsComponent(cmp) {
var f;
while(f = cmp.items.first()){
cmp.remove(f, true);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie aufrufen müssen
viewport.doLayout()
nach dem hinzufügen newpanel weil viewport ist bereits erbracht:Aus der add () - Dokumentation:
doLayout()
im Prinzip war es, ich habe meinen code oben funktioniertKlären, das eigentliche problem war, dass Sie nicht generisch laden Sie eine neue Komponente direkt in einen Behälter, der bereits ein BorderLayout. Durch seine Natur, ein BorderLayout nimmt den gesamten Raum innerhalb des Containers (der viewport in Ihrem Fall) und verwaltet alle Platten innerhalb es. Als solche können Sie nicht nur gehen und später-stick eine andere Platte in den selben container -- es hat nirgendwo zu gehen. Als Sie herausgeführt, der richtige Ansatz erstellen Sie Ihre BorderLayout dann fügen Sie neue untergeordnete Komponenten in spezifischen Regionen, die layout.