2016-03-30 11 views
0

В приложении extjs у меня есть панель дерева, которая загружает данные json из магазина. В этой информации у меня есть свойство checked, которое позволяет манипулировать флажком над строкой на панели дерева.Флажки ExtJs на панели дерева

Как это сделать, чтобы убрать галочку, сняв флажок, прослушав кнопку? (Очистить все флажки)

Вот скрипка, которая немного объясняет ситуацию.

https://fiddle.sencha.com/#fiddle/17v3

ответ

1

Обновить код следующим образом:

Ext.application({ 
    name: 'Fiddle', 

    launch: function() { 
     Ext.define('modeloCapa', { 
      extend: 'Ext.data.Model', 
      fields: ['nombre'] 
     }); 

     var treeStore = Ext.create('Ext.data.TreeStore', { 
      model: 'modeloCapa', 
      proxy: { 
       type: 'ajax', 
       url: "data1.json", 
       reader: { 
        type: 'json', 
        root: 'Result' 
       } 
      } 
     }); 

     var tree = Ext.create('Ext.tree.Panel', { 
      title: 'Test', 
      width: 500, 
      store: treeStore, 
      rootVisible: false, 
      renderTo: Ext.getBody(), 
      columns: [{ 
       xtype: 'treecolumn', 
       flex: 2, 
       sortable: true, 
       dataIndex: 'titulo' 
      }],tbar: [{ 
       xtype: 'button', 
       id: 'btnApagarCapas', 
       text : 'Button', 
       width: 100, 
       tooltip: 'Uncheck!!', 
       iconAlign : 'center', 
        listeners: { 
         click : function(){ 
          treeStore.suspendEvents(); 
          treeStore.getRootNode().cascadeBy(function(node) { 
           if (node.get('checked')) { 
            node.set('checked', false); 
           } 
          }); 
          treeStore.resumeEvents(); 
          tree.getView().refresh(); 
        } 
       } 
      }] 
     }); 
    } 
}); 

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

+0

Не забывайте, что 'suspendEvents()' не работает должным образом при вызове в контроллере. –

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