2012-03-14 19 views
0

enter image description hereExtJS 3.2:レイアウト "境界線"で中央パネルを非表示

こんにちは!私のプロジェクトでは、ウィンドウがあり、その構造は画像上に記述されています。何らかの理由で、以前のバージョンのプロジェクトから継承されたため、ウィンドウ(パネル)の一部を隠す関数を作成する必要があります。パネルC2を非表示にすると、すべてがうまく動作しますが、私が欲しかったのと同じように動作しますが、パネルC1を非表示にすると、「中央」、他のパネルは領域C1を占有しません。それはバグのようです。

私は何か間違っていることを知っていますが、中央パネルを隠すために何らかの種類のハックが必要です。

地域を「中央」に変更しようとしましたが、他のパネルに「中央」が機能しませんでした。

test case

+0

c1パネルを非表示にするコードを投稿できますか? –

+0

http://pastehtml.com/view/brbconfbr.htmlを右クリックし、[ソースを表示]をクリックします。 c1.hide(); c1.parent.doLayout() - firebugコンソール。 – TheHorse

+0

あなたは、パネルの領域を変更する必要があると言ったときには間違いありません。隠されることになるものは、常に「中心」とは異なるものでなければなりません。要素を非表示にする前に、領域を変更してみてください。 –

答えて

1

ExtJSのはボーダレイアウトのセンターパネルを削除することはできません。ただし、センターパネルにアイテムを追加したり削除したりすることはできます。

+0

が必要なので、私は "境界線"レイアウトしか使用できないと思いますが、それは私が探しているものではありません – TheHorse

0

あなたのコードの問題点は、C2パネル用の固定幅を指定することである:

var c1 = new Ext.Panel({ 
    region: "center", 
});     

var c2 = new Ext.Panel({ 
    region: "east", 
    width: 400, 
    split: true 
}); 

をそして、それは、その地域特性の隠れたときに迷子にごC1パネルになります。

地域で作業する場合、通常は固定幅を設定しません。それはつもりあなたの問題を解決するためである。

var c1 = new Ext.Panel({ 
    region: "center", 
});     

var c2 = new Ext.Panel({ 
    region: "east", 
    width: "100%", 
    split: true 
}); 

あなたは今c1.hide();またはc2.hide()のいずれかを試すことができ、部品のような動作が期待されます。

関連する問題