Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
04. パネルの中身をセットする
投稿者:sunvisor 投稿日時:2010/09/23(木) 14:22
パネルの内容を動的にセットするには,Ext.Templateを使うのがExtJS流みたいです。
参考サイト
テンプレートとなるhtml文をセットしてテンプレートオブジェクトを生成。そのhtmlは,ページ中の要素からも取り出せるし,文字列で与えても良い。
Ext.onReady(function() {
Ext.QuickTips.init();
var cmp1 = new MyViewport({
renderTo: Ext.getBody()
});
var sTemp = "<div>{contents}</div>";
var oTemp = new Ext.Template(sTemp);
Ext.getCmp("btnShow").handler =
function() {
oTemp.overwrite(
Ext.getCmp("pnlCanvas").body,
{
'contents':
Ext.getCmp("txtHtml").getRawValue()
}
);
}
;
cmp1.show();
});
そのテンプレートオブジェクトのapplyメソッドでテンプレートから生成したhtmlを得ることができるし,overwriteメソッドを使うとエレメントを書き換えることができる。そのエレメントにpanelオブジェクトのbodyを渡してやれば,パネルの中身を書き換えられるということです。
- 6行目でテンプレートの元になるhtml文を定義。
- 7行目でTemplateオブジェクトを生成。
- 9行目からはbtnShowというボタンのイベントハンドラで,txtHtmlというHtmlEditorコンポーネントで入力された値をpnlCanvasというパネルに表示しています。

