2012-06-14 4 views
0

Я использую ExtJS 4. Я создал панель дерева, какКак получить узел дерева?

var treeStore = Ext.create('Ext.data.TreeStore', { 
     root: { 
      text:'Reports', 
      expanded: true, 
      children: [ 
       { 
        id: 'operationalNode', 
        text: 'Operational', 
        children: [{ text: "report1", leaf: true }] 
       }, 
       { 
        id: 'managementNode', 
        text: 'Management', 
        children: [{ text: "report2", leaf: true }] 
       }, 
       { 
        id: 'inventoryNode', 
        text: 'Inventory' 
       } 
      ] 
     } 
    }); 
var treePanel = Ext.create('Ext.tree.TreePanel',{ 
    animate:true, 
    layout:'fit', 
    height:400, 
    store:treeStore 
    }); 

Теперь я хочу, чтобы получить «Operational» ребенка как

Ext.getCmp('operationalNode'); 

Но она возвращает нуль.

Почему это так?

Как я могу получить этот узел?

Есть ли способ получить Узел по его названию?

ответ

2

узлов являются фактическими моделями, которые имеют интерфейс узла. так что вы должны просто использовать getNodeById из TreeStore

var node = treeStore.getNodeById('operationalNode') 

ваши данные в node.data так же, как в других моделях

0

Вам понадобится что-то вроде этого:

Ext.getCmp('id-of-the-view').getView().getSelectionModel().getSelection()[0]; 
+0

WAW так сложно ... – nscrob

+0

извините за комментарий, но он не просил получить выбранный узел – nscrob

+1

Люди, которые отвечают на вопросы ExtJS, являются небольшими по количеству, поэтому я решил поделиться идеей, даже если это не самый лучший. – Leron

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