2011-08-29 88 views
1

我有一個手風琴佈局,其中有3個面板部分。EXTJs將項目添加到動態數組中的面板

我想使用其中一個部分來顯示過去90天的月份。這可能在3-5個月之間。我有一個計算這些個月,將它們存儲在類似陣列功能:基於此數組中的值

months["May", "June, "July", "August"] 

,我想這些顯示爲手風琴面板鏈接。我不知道如何將這些項目動態添加到手風琴部分。這些鏈接將用於將網格加載到整個邊框佈局的Container中。

這是我的手風琴設置:

title  : 'Navigation', 
       region  : 'west', 
       collapsible : false,   
       margins: '100 0 0 0', 
       cmargins: '5 5 0 0', 
       width: 175, 
       minSize: 100, 
       maxSize: 150, 
       layout: { 
        type: 'accordion', 
        animate: true 
       }, 
       items:[{ 
         id:'main' 
         ,title:'Summary'       
         ,collapsed:false 
         ,frame:true 
         //captures the expand function to call the getgrids functionality 
         //don't want it to expand as it only displays 1 thing 
         ,expand : function(){       
          getGrids(); 
         } 
        }, 
        { 
         id:'month' 
         ,title:'Month View'      
         ,collapsed:false 
         ,frame:true 
         ,items:[{ 

         }] 
        },{ 
         id:'search' 
         ,title:'Search' 
         ,html: 'Search' 
         ,collapsed:true 
         ,frame:true      
        }]   
      }, 

回答

2

您確定要add鏈接作爲items?沒有內置的鏈接部件(至少我沒有聽說過)。但add方法和items配置小部件。所以如果你想定義你自己的鏈接部件,你可以使用這樣的代碼添加它:

var monthsWidget = Ext.getCmp('month'); 
for (var i = 0; i < months.length; i++) 
    monthsWidget.add(new YourLinkWidget(/*config*/)); 

但是創建新的小部件? ...鏈接? ...對我沒有意義。爲什麼不添加DOM元素到Ext.getCmp('month').body

var monthsWidget = Ext.getCmp('month'); 
for (var i = 0; i < months.length; i++) { 
    var link = Ext.createDom({ 
    tag: 'a', 
    href: 'http://example.com' 
    }); 

    Ext.fly(link).on('click', function(e) { 
    // click handling here 

    return false; 
    }); 

    monthsWidget.body.appendChild(link); 
}