2010-12-03 24 views
2

Je définis mon regionContent ici:Comment paramétrer la mise en forme pour qu'elle s'adapte à un tableau Ext.Panel existant? (.setLayout ne fonctionne pas)

regionContent = new Ext.Panel({ 
    region: 'center', 
    // layout: 'fit', //used to be static, needs to be set dynamically now 
    margins: '-1 0 0 -6', 
    autoScroll: true 
}); 

Puis, plus tard dans une page qui est chargée via AJAX, je vide le contenu de regionContent et ajouter du nouveau contenu à lui. En ce moment, comment puis-je également modifier sa mise en page pour "s'adapter"?

Lorsque je tente d'utiliser .setLayout('fit'), je reçois l'erreur layout.setContainer is not a function:

<script type="text/javascript"> 
    var start_info_panel = new Ext.Panel({ 
     padding: 10, 
     width: 300, 
     html: '<h1>Simple Text Page</h1><p>This is an example of a page with simple text.<p>' 
    }); 
    replaceComponentContent2(regionContent, start_info_panel); 

    function replaceComponentContent2(cmpParent, cmpContent) { 
     clearExtjsComponent(cmpParent); 
     cmpParent.add(cmpContent); 
     cmpParent.setLayout('fit'); //error: "layout.setContainer is not a function" 
     cmpParent.doLayout(); 
    } 

    hideComponent(regionHelp); 
</script> 

Répondre

2

Il semble que vous utilisez le BorderLayout au sein du Panel des parents, et cette erreur peut être liée au commentaire suivant dans le. ajouter la fonction() de tout type de conteneur:

Attention: les conteneurs directement gérés par le gestionnaire de mise en page BorderLayout peut pas être retiré ou ajouté. Voir les notes pour BorderLayout pour plus de détails.

Plus d'info

Ext.Container .add() docs

Hope this helps.

+0

C'est exactement exact - vous devriez laisser le seul regionContent et ajouter/supprimer des panneaux. Le panneau de la région centrale ne doit jamais être retiré. –