2011-11-14 142 views
1

setActiveItem函數正在觸發但沒有任何反應,我沒有得到任何錯誤信息..有人可以告訴我爲什麼這不起作用嗎?卡布局setActiveItem沒有射擊

Ext.regModel('team', { 
fields: [ 
    {name: 'name', type: 'string'}, 
    ] 
}); 

Dashboard = new Ext.Application({ 
    name:'Dashboard', 
    launch: function(){ 
//Info list 
var detailPanel = new Ext.Panel({ 
     id:'detailPanel', 
     dock:"top", 
     items: [{ 
      fullscreen:true, 
      xtype: 'list', 
      store: new Ext.data.Store({ 
       model: 'team', 
       getGroupString : function(record) { 
        return record.get('name')[0]; 
       }, 
       proxy: new Ext.data.AjaxProxy({ 
        url: 'a.php/pool/listPools' 
        ,method:'post', 
        reader: { 
       type: 'json', 
       root: 'data', 
       totalCount: 'count' 
        } 
       }) 
       ,autoLoad:true 
      }), 
      sorters: [{ 
      property: 'name', 
      direction: 'asc' 
      }], 
      itemTpl:'<font size="4" face="Helvetica, Arial" color="black">{name}</font>', 
      grouped: true, 
      onItemDisclosure : true, 
        listeners : { 
       itemtap : function(record,index,item,e){ 
if (e.getTarget('.x-list-disclosure')) { 
        var recPool = this.store.data.items[index]; 
        //Ext.Msg.alert([index]); 
        var redirect = 'showpool.php'; 
        window.location = redirect; 
       } 
       // else { Ext.Msg.alert("Item clicked!");} 
       } 
      } 
     }] 
    }) 
    var outer = new Ext.Panel({ 
        fullscreen:true, 
        layout:'card', 
        items:[ 


          detailPanel 
         ] 
        }); 

//------------------------------------Toolbar top 
     var TopPanel = new Ext.Panel({ 
      id:'testview', 
      fullscreen:true, 
      style: "background-color: #GGG;", 
      dockedItems: [ 
            { 
             dock : 'top', 
             xtype: 'toolbar', 
             title: 'Pools', 
             ui:'light', 
             items: [ 
              { 
               text: 'Logout', 
               ui:'back', 
               handler: function(){ 
                   outer.setActiveItem('detailPanel', { type: 'slide', cover: false, direction: 'left'}); 
                } 


              }, {xtype: 'spacer'}, 
              { 
               text: 'Refresh', 
               ui:'action', 
               handler: function(){ 
                  detailPanel.doLayout(); 
                } 
              } 
             ] 
            }, 
        outer] 
      }); 
    } 
}); 

回答

1

實際上,卡片佈局用於在視圖之間切換,如果有兩個或多個項目添加到面板。在你的情況下,外部面板由單個視圖組成。所以它會一直顯示該面板。嘗試添加另一個面板到外部面板並調用setActiveItem()。

2

你使用它作爲一個字符串在這裏:

outer.setActiveItem('detailPanel', 
    {type: 'slide', cover: false, direction: 'left'}); 

使用替代變量:

outer.setActiveItem(detailPanel, 
    {type: 'slide', cover: false, direction: 'left'}); 

這應該工作。