`

ExtJS学习笔记-复选框tree的父子节点联动

阅读更多
  • 选择父节点,所有子节点也被选中
    tree.on('checkchange',function(node,flag){
        node.expand();
        node.attributes.checked=flag;
        //所有子节点被选中
        node.eachChild(function(child){
              child.ui.toggleCheck(flag);
              child.attributes.checked=flag;
              child.fireEvent('checkchange',child,flag);
        });
    },tree);
  • 选择子节点,父节点也被选中
    tree.on('checkchange', function(node, flag) {  
                    if(node.parentNode.id!='root'){//判断是否是root节点
                             //如果该节点的父节点和子节点被选中继续选中
                              if(flag||tree.getChecked(id,node.parentNode)==""){
                                 node.parentNode.ui.toggleCheck(flag);
                                 node.parentNode.attributes.checked=flag;
                                 node.parentNode.fireEvent('checkchange',node.parentNode,flag);//递归调用
                              }
                     }
                }, tree); 
    
  • 前面两点都是在网上找的资源,最后这一点,只是把上面的结合一下就实现了:父子节点联动
    tree.on('checkchange',function(){
      if(node.hasChildNodes()){
           node.cascade(function(node){
                node.attributes.checked=flag;
                node.ui.checkbox.checked=flag;
                return true;
           });
    
           var pNode = node.parentNode;
            for(;pNode.id!='root';pNode=pNode.parentNode){
                if(flag|| tree.getChecked(id,node.parentNode)==""){
                        pNode.ui.checkbox.checked=flag;
                        pNode.attributes.checked=false;
                   }
            }
      }else{
             if(flag&&node.parentNode.id!='root'){
                  node.parentNode.ui.checkbox.checked=flag;
                  node.parentNode.attributes.checked=false;
              }else{
                   node.ui.checkbox.checked=flag;
                   node.attributes.checked=flag;
               }
       }
    });
  • 总结说明:因为项目中用到ExtJS的tree,而我又负责这个树,所以结合网上的资料和自己项目中具体情况,调试修改得到第三点。仅是为了防止遗忘,方便以后查阅。——好脑瓜,不如烂笔头!
3
1
分享到:
评论
2 楼 BearbabyCC 2016-05-16  
我试了怎么不行,我用的是EXTJS3.2
1 楼 superchinaren 2012-11-16  
这是EXT3以下的应用方式。建议写写EXT4的。变化很大。

相关推荐

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

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

    带复选框的 ExtJs tree

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

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

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

    Extjs4---combobox省市区三级联动+struts2

    在这个特定的项目“Extjs4---combobox省市区三级联动+struts2”中,我们将探讨如何利用ExtJS 4的ComboBox组件实现省市区的三级联动效果,并结合Struts2框架进行数据交互。 首先,`ComboBox`是ExtJS中的一个组件,它...

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

    - `extjs复选框树.js`:这是实现上述功能的JavaScript代码,包括工具类和针对树节点的操作方法。 - `样式文件.css`:可能包含了一些自定义的样式,用于美化复选框和树的显示效果。 - `示例HTML文件.html`:演示如何...

    extjs4.1下拉复选框完整DEMO

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

    extjs学习笔记-开发者必备

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

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

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

    基于EXTjs 的 动态复选框树

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

    extjs3.X 带复选框的树

    "带复选框的树"是ExtJS中的TreePanel组件的一个扩展,允许用户通过复选框选择树结构中的节点。这种功能在数据层级结构的管理和筛选中非常有用,例如在组织架构、文件系统或者权限设置中。 复选框树的核心在于`...

    ExtJs常用布局--layout详解实例代码

    ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...

    ExtJS 2.2下载--Ajax框架

    ExtJS是一个Ajax框架,是一个用javascript写的,用于在客户端创建丰富多 彩的web应用程序界面。主要是企业信息化软件,网站后台等。ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写 的,主要用于...

    Extjs学习笔记(-):ComboBox联动

    本篇学习笔记将深入探讨EXTJS中ComboBox的联动效果,即一个ComboBox的选择会触发另一个ComboBox的数据更新,以此来提供更丰富的交互体验。通过源码解析和工具应用,我们将了解如何构建和实现这种联动效果。 ...

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

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

    Extjs4.0学习笔记

    Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态加载JS的方式来加快组件的渲染,我们再也不必一次加载已经达到1MB的ext-all.js了,本文介绍如何在EXTJS4...

    extjs-620-docs.zip

    extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档

    javascript-TreeView父子联动效果保持节点状态一致

    在实际应用中,有时我们需要实现一种父子联动的效果,即选中一个节点时,其所有子节点都被选中;反之,取消选中一个节点时,其所有子节点也被取消选中,以保持节点状态的一致性。这种功能在权限分配等场景中尤其有用...

    extjs4带全选复选框的下列表(有bug)

    1、解压,进入extjs4.2.1\examples\form,浏览器打开 hbox-form.html 文件,当我勾选中任意一个多选下拉框,然后再勾选‘ALL’时,‘ALL’却是不被选中的状态,且...extjs4.2.1\examples\form\MultipleComboBox.js

    ExtJS笔记----FormPanel的使用

    NULL 博文链接:https://lucky16.iteye.com/blog/1490278

Global site tag (gtag.js) - Google Analytics