ExtJS4で、アコーディオンパネルを使っています。
Storeからデータを動的にロードしアコーディオンを組み立てたい
のですが、どのようにやればいいでしょうか?
分かる人、教えて下さい。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
以下のサンプルの様に、initComponentメソッド内で、
動的にstoreを読み込んで、addItemメソッドを定義して、
itemsにデータを組み込んでやるといいいでしょう。
lang
1Ext.define('AM.view.user.Accord', { 2extend: 'Ext.panel.Panel', 3alias : 'widget.useraccord', 4 5title : 'Accordion', 6store : null, 7attentive: true, 8 9 10initComponent: function() { 11var me = this; 12me.store = Ext.StoreMgr.lookup('Users'); 13me.layout = { 14type: 'accordion', 15align: 'stretch' 16}; 17me.layoutConfig = { 18titleCollapse: true, 19animate: true, 20activeOnTop: true 21}; 22 23me.callParent(arguments); 24if (me.attentive) { 25me.store.on('load', me.onRebuildContent, me); 26if (me.store.count() == 0) 27me.store.load(); 28} else { 29me.buildContent(); 30} 31}, 32buildContent: function() { 33var me = this; 34function addItem(rec) { 35me.add({ 36xtype: 'panel', 37title: rec.get('name'), 38html: rec.get('email'), 39listeners: { 40expand: function() { 41console.log('hogehoge'); 42} 43} 44}); 45}; 46 47me.store.each(addItem); 48}, 49onRebuildContent: function() { 50var me = this; 51me.removeAll(); 52me.buildContent(); 53} 54});
投稿2014/10/04 02:30
総合スコア38
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。