`

EXTJS学习笔记----EXTJs中带复选框的tree,选中父节点时所有子节点也被选中

 
阅读更多
 // 当选中父节点时,让其子节点相应选中
               contacterTree.on('checkchange', function(node, checked) {  
                node.expand();  
                node.attributes.checked = checked;  
                node.eachChild(function(child) {  
                    child.ui.toggleCheck(checked);  
                    child.attributes.checked = checked;  
                    child.fireEvent('checkchange', child, checked);  
                });  
            }, contacterTree);   


 





第二种
'checkchange' : function(node, checked) {
       win.treepnl.suspendEvents(false);
       //后加的树展开选中函数,存在递归调用,有待提取。
       node.expand(); 
                   node.attributes.checked = checked;   
                   node.eachChild(function(child) {   
                       child.ui.toggleCheck(checked);   
                       child.attributes.checked = checked;   
                       child.fireEvent('checkchange', child, checked);
                       if(child.hasChildNodes()){
                        child.expand();
                        child.eachChild(function(childs) {   
                        childs.ui.toggleCheck(checked);   
                        childs.attributes.checked = checked;   
                        childs.fireEvent('checkchange', childs, checked);
                          if(childs.hasChildNodes()){
                          childs.expand();
                          childs.eachChild(function(childss) {   
                          childss.ui.toggleCheck(checked);   
                          childss.attributes.checked = checked;   
                          childss.fireEvent('checkchange', childss, checked);
                       });
                         }
                     });
                       }
                   });   





3

'checkchange' : function(node, checked) {
       win.treepnl.suspendEvents(false);
       //后加的树展开选中函数,存在递归调用,有待提取。
       node.expand(); 
       node.attributes.checked = checked;
       node.eachChild(function(child) {   
       		child.ui.toggleCheck(checked);   
            child.attributes.checked = checked;   
            child.fireEvent('checkchange', child, checked);
            if(child.hasChildNodes()){
               child.expand();
               child.eachChild(function(childs) {   
                   childs.ui.toggleCheck(checked);   
                   childs.attributes.checked = checked;   
                   childs.fireEvent('checkchange', childs, checked);
                   if(childs.hasChildNodes()){
                        childs.expand();
                        childs.eachChild(function(childss) {   
                          childss.ui.toggleCheck(checked);   
                          childss.attributes.checked = checked;   
                          childss.fireEvent('checkchange', childss, checked);
                       });   
                   }     
              });            
           }        
      });                    
   }
分享到:
评论
1 楼 bz5011 2015-03-09  
node.eachChild() 要延迟,等node.expand()完,增加setTimeout()

相关推荐

    extjs带复选框的树包括全选 反选 子选父以及 父选子

    4. **父选子**:当父节点的复选框被选中或取消选中时,所有子节点的选中状态也应同步。同样,也需要监听`checkchange`事件,并遍历子节点进行状态同步。 在JSP页面上,ExtJS与ADF(Oracle Application Development ...

    带复选框的 ExtJs tree

    在给定的文件中,我们关注的是“带复选框的ExtJS tree”这一主题,这涉及到ExtJS框架下的树形组件(TreePanel)如何与复选框结合,为用户提供更为灵活的数据选择和管理方式。 ### 标题解析:“带复选框的ExtJS tree...

    解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

    全选功能通常通过添加一个特殊的复选框来实现,该复选框与所有其他复选框的状态联动,当所有项被选中时,全选复选框自动选中;反之,当至少有一项未被选中时,全选复选框应该变为未选中状态。 问题的根源在于事件...

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    关于extjs treepanel复选框选中父节点与子节点的问题

    在本例中,我们关注的是如何实现一个带有复选框的TreePanel,以便在选中父节点时自动选中所有子节点,而只有当所有子节点都未被选中时,父节点才能被取消选中。 首先,我们创建了一个新的Ext.tree.TreePanel实例,...

    extjs3.X 带复选框的树

    2. **选中状态的同步**:关键特性之一是,当父节点被选中时,所有子节点自动被选中;反之,如果所有子节点被选中,父节点也会被选中。这涉及到节点间状态的同步,可能通过监听`checkchange`事件来实现。 3. **级联...

    extjs4.1下拉复选框完整DEMO

    在这个"extjs4.1下拉复选框完整DEMO"中,我们主要关注的是如何使用ExtJS实现一个具有动态加载功能的下拉复选框组件。这个DEMO包含以下几个关键组成部分: 1. **ext-all-debug.js**:这是ExtJS的核心库文件,包含了...

    获取Extjs中的TreePanel中所有的被checked的叶子节点的id

    在本篇文章中,我们将深入探讨如何在ExtJS框架中获取TreePanel中所有被选中(checked)的叶子节点的ID。此技术对于处理复杂的数据结构、优化用户交互体验以及实现高效的数据管理至关重要。 ### 一、ExtJS简介 ...

    ExtJS笔记---Grid实现后台分页

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    解决 extjs2.2 给tree-panel 添加 checkbox 的add-on

    在一些应用场景中,除了简单的选中和未选中外,还需要一个“部分选中”或“不确定”的状态,例如在文件系统中,父节点的复选框状态取决于所有子节点的状态。TriStateNodeUI.js可能就是为这种需求设计的。 在EXTJS ...

    Extjs复习笔记(二十)-- tree和grid结合

    3. 监听Tree事件:通过监听TreePanel的`itemclick`或`itemexpand`事件,可以在节点被点击或展开时更新GridPanel的数据源。 4. 自定义UX组件:可能需要自定义EXTJS的扩展(Extension或UX组件),以便在Tree节点和...

    Extjs4.0学习笔记

    Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态加载JS的方式来加快组件的渲染,我们再也不必一次加载已经...ExtJS4学习笔记(十)---ExtJS4图片验证码的实现

    ExtJs4 Checkbox tree

    由于Checkbox Tree支持多级节点,因此在处理全选/全不选或者级联选中时,需要使用递归算法遍历所有子节点,同步它们的选中状态。 9. **样式和模板**: 复选框的样式可以通过CSS自定义,如改变选中、未选中和三态...

    基于EXTjs 的 动态复选框树

    基于EXTjs 的 动态复选框树 json数据交互

    extjs学习笔记-开发者必备

    对爱好extjs的开发者有帮助,提供中文api文档,及常用的方法!

    ExtJS4中文教程2 开发笔记 chm

    Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法 ExtJS4学习笔记(一)---window的创建 ...

    Extjs复习笔记(十八)-- TreePanel

    在这个例子中,每个节点都有`text`表示显示的文本,`children`数组表示子节点,而`checked`属性则表示该节点的复选框是否被选中。 通过以上知识点,我们可以创建一个带有复选框功能的TreePanel,用户可以通过选择...

    Extjs4.2带复选框下拉树组件

    网上搜索了许久未找到...Extjs4.2 带复选框的下拉树,解决了向下勾选子节点、向上勾选父节点,正选反选获取值等问题,勾选的节点显示displayfield值直接显示在下拉文本框中。需要引用ext-all.js和ext-all-neptune.css

    extjs-620-docs.rar完全离线版

    此"extjs-620-docs.rar"压缩包包含了该版本的完全离线版API文档,旨在解决在没有网络连接或网络环境不稳定时,开发者仍然可以便捷地查阅和学习ExtJS 6.2.0的相关知识。 API 文档是任何开发者的重要工具,特别是对于...

Global site tag (gtag.js) - Google Analytics