选中并取消选中treepanel中的节点

Dev*_*Dev 4 extjs treepanel extjs4.2

要做的事情:检查孩子应该检查树上的父母,清除父复选框应清除所有孩子.

示例:

parent1
--child1
--child2
     --subChild1
     --subChild2

场景1:在上述情况下,如果选中了subChild1,则还应检查parent1和child2.

场景2:如果选中parent1,则应取消选中其所有子项(已选中).

从此检查/取消选中节点,仅当选择父节点时,才会选择其子节点.

它们是按照我想要的方式实现的,但由于复杂程度足以让我理解,因此无法弄清楚(实现).这是它的参考

请帮我解决这个功能.谢谢.任何帮助将不胜感激.

Dev*_*Dev 7

这就是我所做的.它花了一些时间,但它有效.

checkchange : function(node, checked, opts) {

 function clearNodeSelection(node){
  //node is not leaf node
   console.log(node);
   leafNode = node.raw.leaf;
   if(!leafNode){
      node.cascadeBy(function(node) {
            node.set('checked', false);
       })
   }
 }

 if(!checked){
    console.log("inside !checked : "+checked);
    clearNodeSelection(node);
 }

 function selectParentNodes(node){
     var parentNode = node.parentNode;
     if(parentNode){
        parentNode.set('checked', true);
        selectParentNodes(parentNode);
    }
 }

 selectParentNodes(node);
}
Run Code Online (Sandbox Code Playgroud)

Atlast,谢谢@VDP.'太棒了'很棒.