2014-11-27 2 views
0

Как получить доступ к моей панели дерева из обработчика событий внутри Ext.tree.Panel?Как получить доступ к корневому узлу из обработчика событий в дереве?

Следующий товарКлассирующий код не работает. Я пробовал идти как 'вверх' и 'down'.

Ext.create('Ext.tree.Panel', { 
    title: 'Example Tree', 
    width: 200, 
    height: 450, 
    store: store, 

    listeners: { 
     itemclick: function(dv, record, item, index, e) { 

      var me = this; 
      var panel = me.up('treepanel'); 
      var rn = panel.getRootNode(); //panel undefined :(
     } 
    } 
} 

Однако, если у меня есть кнопки на панели инструментов она отлично работает:

dockedItems: [{ 
    xtype: 'toolbar', 
    dock: 'bottom', 
    items: [{ 
     text: 'Search', 
     handler: function() { 
      var me = this; 
      var panel = me.up('treepanel'); 
      var rn = panel.getRootNode(); // :) 
     } 
    }] 
}] 

Оба эти примеры проиллюстрированы в этом fiddle.

+0

Я думаю, вы можете использовать me.getRootNode(), так как я (это) будет ссылаться на текущий компонент. – Sreek521

ответ

0

Вот как работает область действия в ExtJS (точнее, в Javascript). В первом примере «это» (я) это «я» - это дерево. Попробуйте следующие

`listeners: { 
     itemclick: function(dv, record, item, index, e) { 

      //var me = this; 
      //var panel = me.up('treepanel'); 
      var panel = this; //'this' is treepanel 
      var rn = panel.getRootNode(); 
     } 
    }` 

Coming ко второму примеру, если вы наблюдаете шаблон конфигурации, это ярлык шаблон для создания кнопки в панели инструментов, а значит «это» становится кнопкой, и вы можете получить дерево с помощью компонента запроса ,

0

Поскольку вы находитесь внутри панели, подход Балы должен работать. Если это не попытка, как показано ниже. Первым параметром функции itemclick является представление. Вы можете получить панель от нее.

listeners: { 
    itemclick: function(dv, record, item, index, e) { 
     var panel = dv.up('treepanel'); 
     var rn = panel.getRootNode(); 
    } 
} 
Смежные вопросы