PDA

View Full Version : 動的に追加したTabPanel の各タブのタイトルを変更する



aruk
23 Jun 2009, 10:02 PM
おせわになっています、arukと申します。

とあるTabPanelに対し、ユーザのアクションにより動的にタブを追加生成する処理を
書いているのですが、実装方法につまってしまっている箇所があります。



以下のソースで、動的にタブを追加していく処理をさせた場合、タブが追加される動きは問題なく
動作するのですが、追加していったタブのタイトル部分がすべて「タブAAA」という名前になります。

期待する動きとしては、動的にタブを追加した後で、タブのタイトルをそれぞれの各タブに応じて
変更したいのですが、うまく実装できていません。



記述中のソースは以下になります。
詳細部分や名称が公開できない箇所は省略しており、なおかつ関数部分とロジック部分は別ファイルで
動作しているかたちになっています。



動作の流れとしてはファイル1が実行された時にファイル2の関数を呼び込んできてフォームの内容を
取得する順になります。


layout_aaa.addした後に名称を変更することはできないのでしょうか。
お手数をおかけいたしますが、お教えいただきたいと思います。







//****************************
//ファイル1
//****************************

//上記関数を呼び出し、返り値を受け取る
var objtab = CreateTab();

//上記で生成されたタブを追加する
var form = layout_aaa.add(objtab);


//ここでタブの名称変更を行いたい



//以下、追加されたタブを画面上へ描画する
form.show();
form.render(Ext.get("data_div"));




//****************************
//ファイル2
//****************************
//各タブ内容をここで関数の戻り値として返すようにする
var CreateTab= function(){

var TabForm = new Ext.FormPanel({
title:'タブAAA',
frame:false,
items:[
{
xtype:'datefield',
fieldLabel:'開始日',
name:'start_date',
format:'Y/m/d',
endDateField:'end_date',
contentEl:'start_date'
},
{



以下、各タブで必要な項目をitemsとして記載しています



}
]
});

return TabForm;

}

yuki
24 Jun 2009, 1:22 AM
objTab.setTitle()ではダメなんですか?:)

aruk
24 Jun 2009, 1:29 AM
YUKIさん、はじめまして。




objTab.setTitle("test !!!");



とすることで、無事にできました!
お恥ずかしいことにAPIドキュメントを見てもスっとこの方法を思いつきませんでした。

ありがとうございました。