2013-03-14 3 views
0

Я создал видовое окно в ExtJS с несколькими макетами (запад, центр, север). Одна из них - это сетка, к которой я добавил обработчик кликов. Этот клик должен открыть файл HTML или PHP в одном из макетов, но я не уверен, как получить доступ к элементу в центре от обработчика кликов на западе.ExtJS viewport один элемент, доступ к другому элементу

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

Если вы даете компонент, который вы хотите получить доступ к Itemid из foo, вы можете сделать что-то вроде этого, перейдите к области просмотра, а затем вниз, чтобы найти подходящий видовых ребенка.

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

+0

Спасибо. Я попробую. Я где-то читал, что лучше избегать этого, но это похоже на единственный вариант. –

+0

Существует несколько способов сделать это, это предпочтительнее, потому что с помощью itemId он является локальным для контейнера, и запрос ограничен логикой класса. –

+0

Спасибо, сработало. Почему мне нужно использовать # в нисходящей строке? –

Смежные вопросы