Extjs 中 Treepanel 实现级联选中效果

2018-06-24 00:00:51来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

treepanel 里添加以下代码即可实现级联选中效果

主要实现了以下效果:

1.点击父级批量设置所有子节点选中状态

2.点击当前节点寻找所有父级并设置选中状态

3.取消当前节点并取消所有子节点选中状态

4.取消当前节点根据需要取消上级节点的选中状态

 1 listeners:{
 2     checkchange:function(node,checked,eOpts){
 3 
 4         // 批量设置子节点选中效果
 5         function setChildChecked(pNode){
 6             pNode.set('checked',checked);
 7             pNode.eachChild(function(child){
 8                 setChildChecked(child);
 9             })
10         }
11         setChildChecked(node);
12 
13         // 当前节点取消选中时 需要判断当前节点的父节点下的所有子节点是否都不是选中状态
14         function setParentCheckedFalse(currentNode){
15             var parentNode = currentNode.parentNode,
16                 isValid = true;
17             if(parentNode != null){
18                 if(checked == false){
19                     parentNode.eachChild(function (child) {
20                         if(child.get('checked') != false){
21                             isValid = false;
22                             return false;
23                         }
24                     });
25                     if(isValid){
26                         parentNode.set('checked',checked);
27 
28                     }
29                 }else{
30                     parentNode.set('checked',true);
31                 }
32                 setParentCheckedFalse(parentNode)
33             }
34         }
35         setParentCheckedFalse(node);
36     }
37 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:异常处理

下一篇:浅谈javascript的面向对象思想