2010-12-03 40 views
2

我這裏定義我regionContent:在通過AJAX頁面加載如何設置佈局以適合現有的Ext.Panel? (.setLayout不工作)

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 
}); 

後來的後來,我空的regionContent的內容和添加新的內容給它。在這個時候,我該如何改變它的佈局來「適合」?

當我嘗試使用.setLayout('fit'),我得到的錯誤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> 

回答

2

看樣子你是在父面板內使用BorderLayout的,而這個錯誤可能與內這樣的評論。任何容器類型的add()函數:

警告:直接由BorderLayout佈局管理器管理的容器可能不會被刪除或添加。有關更多詳細信息,請參閱BorderLayout的註釋。

更多信息

Ext.Container .add() docs

希望這有助於。

+0

這是完全正確的 - 你應該單獨離開regionContent並添加/刪除面板。中央區域面板絕對不能被移除。 – 2010-12-03 20:42:42