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というパネルに表示しています。