2013-03-14 126 views
0

我已經在ExtJS中創建了幾個佈局(西,中,北)的視口。其中之一是我添加了點擊處理程序的網格。這個點擊應該是在一個佈局中打開一個HTML或PHP文件,但我不知道如何從西方的點擊處理程序訪問中心的項目。ExtJS視口訪問另一個項目的一個項目

Ext.create('Ext.Viewport', { 
     layout: { 
      type: 'border', 
      padding: 5 
     }, 
     defaults: { 
      split: true 
     }, 
     items: [{ 
      region: 'north', 
      border:false, 
      collapsible: false, 
      resizable:false, 
      title: 'North', 
      split: true, 
      height: 30, 
      html: 'north' 
     },{ 
      region: 'west', 
      collapsible: true, 
      title: 'Navigation', 
      split: true, 
      width: '10%', 
      xtype: 'gridpanel', 
      itemid:'projectgrid', 
      hideHeaders: true, 
      columns: [{header: 'NID', dataIndex: 'NavName', flex: 1}], 
      store: navStore, 
      listeners: { 
       itemclick: function(dv, record, item, index, e) { 
        alert(record.get('NavPage')); 
       } 
      } 

     },{ 
      region: 'center', 
      layout: 'border', 
      border: false, 
      id: 'renderArea', 
      items: [{ 
       region: 'center', 
       html: 'center center', 
       title: 'Center', 
       items: [cw = Ext.create('Ext.Window', { 
        xtype: 'window', 
        closable: false, 
        minimizable: true, 
        title: 'Constrained Window', 
        height: 200, 
        width: 400, 
        constrain: true, 
        html: 'I am in a Container', 
        itemId: 'center-window', 
        minimize: function() { 
         this.floatParent.down('button#toggleCw').toggle(); 
        } 
       })] 
      }] 
     }] 
    }); 

回答

1

如果給你要訪問的foo一個的itemId的組件,你可以做這樣的事情,導航到口,然後向下尋找合適的視孩子。

dv.up('viewport').down('#foo')

+0

謝謝。我會試試看。我在某處讀到最好避免這種情況,但看起來似乎是唯一的選擇。 – 2013-03-14 15:10:40

+0

有很多方法可以做到這一點,因爲通過使用itemId它對容器是本地的,並且查詢受限於類的邏輯。 – 2013-03-14 17:11:27

+0

感謝它的工作。爲什麼我需要在下拉字符串中使用#號? – 2013-03-15 00:17:31

相關問題