Extjs 中 Treepanel 实现级联选中效果

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 }

 

转载于:https://www.cnblogs.com/banywl/p/7410456.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值