2014-10-25 2 views
0

im пытается проверить/снять отметку с определенного узла и его дочерних узлов, как показано ниже . Кроме маски загрузки. Я не знаю, в чем проблема. почему бы не показать маску?extjs 4 показать маску, проверяя/удаляя узлы

onTreepanelCheckChange: function(node, checked, eOpts) { 
    tree.setLoading('Wait...'); 
    node.cascadeBy(function(n) { 
     n.set('checked', checked); 
     if(n.data.p_id !== 0) n.expand(); 
    }); 
    tree.setLoading(false); 
} 

Я попытался использовать tree.suspendLayouts(); Перед функцией cacadeBy, но результат тот же

ответ

0

Попробуйте изменить свой метод:

onTreepanelCheckChange: function(node, checked, eOpts) { 
    tree.mask('Wait...'); 
    Ext.defer(function(){ 
     node.cascadeBy(function(n) { 
      n.set('checked', checked); 
      if(n.data.p_id !== 0) n.expand(); 
     }); 
     tree.unmask(); 
    },100); 
} 

Вертушка будет заморожен, но он будет отображаться.

+0

спасибо за ответ Я попробовал tree.mask()/unmask() также попробовал tree.body.mask()/unmask(), но я не вижу маску. когда я нажимаю на родительский узел для проверки, дерево зависает, пока не будут проверены все дочерние узлы. –

+0

Привет, Фират, я обновил свой пост. Это должно заставить маску появиться! –

+0

в первую очередь его работы большое спасибо. но я хочу попросить больше. У моей панели есть около 300 узлов. когда я пытаюсь проверить корневой узел, это слишком много времени. как я могу улучшить производительность? есть ли другой способ проверить все узлы? –