Изменить все элементы дерева
Есть дерево
for (var i=0; i<= buses.length-1; i++) { objects.push(new Object({ text: buses[i].name_, itemId:buses[i].obj_id_, name:buses[i].proj_id_, leaf: true, checked: false })); } /*store для дерева*/ var store = Ext.create('Ext.data.TreeStore', { root: { expanded: true, children: objects } }); var window = Ext.getCmp('detailReport'); var treePanel = Ext.getCmp('tree_panel'); /*Само дерево*/ var panel = Ext.create('Ext.tree.Panel', { title: 'Автобусы', width: 200, height: 350, store: store, rootVisible: false, region: 'west', id: 'tree_panel' }); Мне надо чтобы, по нажатию кнопки все элементы были checked и наоборот были незачеканы. Получить зачеканные в ручную элементы я могу. есть метод Checked() Может есть методы для полученя всех элементов и вызова у них методов Check() или в ручную их перебрать и поставить им checked:true |
Не имел тесно дела с TreeStore, но думаю можно попробовать сделать свой метод each, рекурсивно обойдя дерево с помощью метода eachChild
|
Для такой мелочи готовые методы не предусмотрены. Есть http://docs.sencha.com/extjs/4.2.2/#...thod-cascadeBy и с его помощью такое делается:
store.cascadeBy(function (node) { node.set('checked', true); }) |
Часовой пояс GMT +3, время: 09:14. |