2015-03-05 5 views
1

Пожалуйста, проверьте следующее fiddle. У меня есть узел с именем Grand Parent, этот узел имеет двух детей: Child Node & Child Two.Как найти n-й дочерний узел в панели дерева ExtJS 4.1

enter image description here

Когда пользователь щелкает на Большой родительский узел, я хочу идти вниз до последнего узла в иерархии и обновления одного свойства в каждом узле.

По щелчку на Grand Parent узле, я могу получить доступ к Child Node & Child two узла, но я не могу найти их Чайлдс.

Каким образом можно спуститься и найти каждый дочерний узел в иерархии.

ответ

1

Для этой цели можно использовать метод 'cascade'. (http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.container.AbstractContainer-method-cascade)

Как и в этой скрипке http://jsfiddle.net/j27rfzu6/1/

var store = Ext.create('Ext.data.TreeStore', { 

root: { 
    expanded: true, 
    children: [{ 
     text: "Grand Parent", 
     checked: false, 
     isSelected: false, 
     id: '1', 
     children: [{ 
      text: 'Child Node', 
      checked: false, 
      IsSelected: false, 
      id: '1.1', 
      children: [{ 
       text: "Grand Child One", 
       expanded: true, 
       checked: false, 
       isSelected: false, 
       id: '1.1.1', 
      }, { 

       text: "Grand Child Two", 
       expanded: true, 
       checked: false, 
       isSelected: false, 
       id: '1.1.2', 
      }, { 

       text: "Grand Child Three", 
       expanded: true, 
       checked: false, 
       isSelected: false, 
       id: '1.1.3', 
      }] 
     }, { 

      text: 'Child Two', 
      checked: false, 
      isSelected: false, 
      id: '1.2', 
      children: [{ 
       text: "Grand Child Four", 
       expanded: true, 
       checked: false, 
       isSelected: false, 
       id: '1.2.1', 
      }] 
     }] 

    }] 
} 
}); 

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

renderTo: Ext.getBody(), 
listeners: { 
    itemclick: function (thisGrid, record, item, index, e, eOpts) { 
     record.cascade(function(){ 
      alert(this.get('text')); 
     }); 
     var v = 10; 
     alert('clicked'); 
    } 
} 
}); 
Смежные вопросы