2011-11-07 9 views
0

私はアコーデオンのレイアウトを作成し、ここに示すようにいくつかのパネルを追加しました。それは正常に動作しています。ExtJs Accordion Layout Collapse

var changePasswordDlg = new MaPPE.changePasswordDlg(); 
var lostPasswordDlg = new MaPPE.lostPasswordDlg(); 
var personalInfoDlg = new MaPPE.personalInfoDlg(); 
var selectLangDlg = new MaPPE.selectLangDlg(); 
var visibilityDlg = new MaPPE.visibilityDlg(); 

var config = { 
    layout: 'accordion', 
    title: '', 
    bodyStyle: 'background-color:#DFE8F6', 
    items:[ 
    changePasswordDlg, 
    lostPasswordDlg, 
    personalInfoDlg, 
    selectLangDlg, 
    visibilityDlg 
    ] 
}; 

各ダイアログにはパネルがあり、キャンセルボタンがあります。私は各パネルのキャンセルボタンが現在のパネルをアコーディオンのレイアウトから崩壊させたい。これはどうすればできますか?

私はそれを検索しようとしましたが、expandをfalseに設定するとそのトリックが行われることがわかりました。しかし、私はどのコンポーネントでexpand関数を呼び出すのか分からなかった。

+0

fireEvents to parent必要なアクションを持つコンテナ、hanler関数は、展開/折りたたみを行いたい – bensiu

答えて

0

パネルのレイアウトによっては、キャンセルボタンは次のような何かを行うことができる必要があります:あなたの周りのレイアウトを変更している場合は、複雑で壊れやすい取得しかし

this.ownerCt.expand(); 

、。

var cancelButton = new Ext.Button({other: 1, config: 2, items:3, mySettingsDialog: this}); 
// where this is a reference to the encompassing dialog panel 

その後ハンドラで:

this.mySettingsDialog.expand(); 

範囲をボタンに、ハンドラのデフォルトのためにしない限り、キャンセルボタンの設定でプロパティとしてパネルを設定し、ボタンのハンドラ内でそれを使用することをお勧めあなたはそれを変更しました。