`

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的数据更新,以此来提供更丰富的交互体验。通过源码解析和工具应用,我们将了解如何构建和实现这种联动效果。 ...

    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官方文档

    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

    ExtJS中editable-column-tree组件的使用 示例

    首先,`editable-column-tree`组件是ExtJS中的一种特殊类型的树形视图,它允许用户直接在树节点的列中编辑数据。这种功能在需要对树形结构的数据进行实时修改的场景下非常实用,例如在组织架构管理、文件系统操作...

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

    总的来说,EXTJS TreePanel的复选框功能是通过监听节点状态变化并递归地更新子节点状态来实现的,同时需要确保所有子节点未选中时父节点才能取消选中。这种设计提高了用户界面的交互性和易用性。

Global site tag (gtag.js) - Google Analytics