`

为DTree添加复选框

 
阅读更多

为DTree添加上复选框可以让树的功能更加丰富,比如在做树形结构的时候可以点击选择多个树节点进行操作等等....

添加复选框的步骤:

1)dtree.js

在function dTree (objName) {

    this.config = {

        target : null,

        folderLinks : true,

        useSelection : true,

        useCookies : true,

        useLines : true,

        useIcons : true,

        useStatusText : false,

        closeSameLevel : false,

        inOrder : false,

        check : true
        // 检查是否有复选框

    }

添加上check属性.

 

2)dtree.js

添加代码:

dTree.prototype.node = function(node, nodeId) {

    var str = '<div class="dTreeNode">' + this.indent(node, nodeId);

    if (this.config.useIcons) {

        if (!node.icon)
            node.icon = (this.root.id == node.pid)
                    ? this.icon.root
                    : ((node._hc) ? this.icon.folder : this.icon.node);

        if (!node.iconOpen)
            node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node;

        if (this.root.id == node.pid) {

            node.icon = this.icon.root;

            node.iconOpen = this.icon.root;

        }

        str += '<img id="i' + this.obj + nodeId + '" src="'
                + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />';

        //添加上复选框
        if (this.config.check == true) {

            str += '<input type="checkbox" id="c' + this.obj + node.id
                    + '" onclick="javascript:' + this.obj + '.cc(' + node.id
                    + ',' + node.pid + ')"/>';
        }
       
    }

 

3)dtree.js

最后要为点中复选框的事件添加cc方法

//点击复选框onclick事件
dTree.prototype.cc=function(nodeId, nodePid){
   
   //首先获取这个多选框的id
    var cs = document.getElementById("c" + this.obj + nodeId).checked;
   
    var n,node = this.aNodes[nodeId];
   
    var len = this.aNodes.length;
   
    for (n=0; n<len; n++) { //如果循环每一个节点
        if (this.aNodes[n].pid == nodeId) { //如果选中的是非叶子节点,则要将所有的子节点选择和父节点一样
            document.getElementById("c" + this.obj + this.aNodes[n].id).checked = cs;          
            this.cc(this.aNodes[n].id, nodeId);          
        }        
    } 
   
     if(cs==true){  //当前是选中状态
        var pid=nodePid; 
        var bSearch; 
        do{ 
            bSearch=false; 
            for(n=0;n<len;n++){  //循环每一个节点
                if(this.aNodes[n].id==pid){  //如果循环的节点的id等于PID
                    document.getElementById("c"+this.obj+pid).checked=true; //那么这个循环的节点应该被选中 
                    pid=this.aNodes[n].pid; 
                    bSearch= true;       
                    break;   
                }   
            }   
        }while(bSearch==true);
      }
     
      if(cs==false){      //如果被取消选择
        var pid = nodePid; 
        do{   
            for(j=0;j<len;j++){         //循环每一个多选框  如果这个节点的子节点有其他是选中的,则不取消
                if(this.aNodes[j].pid==pid && document.getElementById("c" + this.obj + this.aNodes[j].id).checked==true){                
                    return; 
                } 
            } 
            if(j==len){   //循环结束
                for(k=0;k<len;k++){   
                    if(this.aNodes[k].id==pid){   //如果找到父节点
                        document.getElementById("c"+this.obj+this.aNodes[k].id).checked=false;   
                        pid=this.aNodes[k].pid;  
                        break; 
                    }      
                }   
            }   
        }while(pid!=-1);     
    }
}
//复选框onclick事件

 

 

恭喜!完成以上三步后,dtree的复选框就打造完成了

新建一颗树:

d = new dtree('d');

d.check = true;          //只添加了这一段代码

d.add.......

................

分享到:
评论

相关推荐

    dtree新改版-添加checkbox复选框

    由于原版dtree作者没有加上复选框功能,我用来做用户模块权限功能的时候很不好用,网上也找到一些基于dtree添加了checkbox的修改版,但是用起来很不顺手,最后不得不根据自己的需要一再修改成了现在这个版本。...

    原始dtree+右键dtree+复选框dtree

    实现复选框dtree时,我们需要修改dtree的源码,添加复选框元素并处理它们的勾选状态。同时,还需要考虑父子节点之间的关联性,比如父节点的勾选状态应根据其所有子节点的勾选状态自动更新。 在提供的压缩包中,可能...

    dtree和dtree_checkbox(dtree复选框)

    - **复选功能**:每个节点都可以添加复选框,用户可以进行单选或多选操作。 - **状态管理**:能够跟踪和管理所有节点的选择状态,包括全选、反选、清除选择等。 - **事件处理**:提供丰富的事件接口,如点击复选框时...

    dtree含复选框延迟加载.rar

    实现复选框功能,需要在每个树节点上添加复选框元素,并绑定事件监听器。当用户点击复选框时,前端会触发一个事件,更新选中状态并可能向服务器发送请求以记录用户的选中操作。服务器端则需要有相应的逻辑来处理这些...

    带复选框的dtree树

    【压缩包子文件的文件名称列表】:只有一个名为“dtree”的文件,这可能是包含了实现带复选框的dtree功能的源代码文件、库文件或者配置文件。通常,这样的文件可能包含以下部分: - **示例代码**:演示如何创建和...

    dtree读取单选和复选的值

    `dtree` 是一种常用于创建可交互的树形结构组件,它允许用户通过单选按钮(radiobox)和复选框(checkbox)进行选择。本文将深入探讨如何使用 `dtree` 来读取这些选择的值,以及如何根据需求进行定制。 首先,`...

    dtree用法带右键菜单,带复选框

    ### dtree用法详解:集成右键菜单及复选框功能 #### 一、dtree简介 dtree 是一个基于 JavaScript 的轻量级树形菜单组件,它支持自定义节点内容,包括添加链接、图标等元素。此外,dtree 还提供了一些基本的功能,如...

    dtree延迟加载+复选框实现单选功能

    本篇文章将深入探讨如何在`dtree`中实现延迟加载和复选框的单选功能。 首先,让我们理解一下`dtree`的延迟加载(lazy loading)机制。延迟加载是一种优化策略,用于处理大量数据时提高性能。在树结构中,不是一次性...

    复选框 可用多选的dtree

    2. **复选框交互**:为每个节点添加复选框,用户可以选择单个节点或多个节点,同时保持父子节点间的选择关联性,例如父节点的选中状态会根据其所有子节点的选中状态自动更新。 3. **事件监听**:监听复选框的点击...

    带复选框的dtree和时间控件

    它涉及到的技术包括`jQuery`用于前端交互,dtree实现树形结构并添加复选功能,日期控件提供日期选择,以及数据库的建表、插入数据等后端操作。这样的项目对于学习Web开发,特别是前后端协作和交互设计,具有很高的...

    树形复选框(dtree)

    树形复选框(dtree)是一种用户界面组件,常用于数据组织和筛选,尤其在网页和应用程序设计中。它结合了树结构和复选框的功能,允许用户以层次化的方式选择一组相关的选项。在dtree中,每个节点都可以是一个复选框,...

    dtree带checkbox

    2. **CheckBoxNode**:为了添加复选框功能,我们需要创建一个自定义节点类,继承自DefaultMutableTreeNode,添加一个布尔属性表示选中状态,并重写相关方法如toString()以显示带有复选框的节点文本。 3. **...

    带复选框的Dtree

    而在“带复选框的Dtree”中,每个节点都添加了一个复选框,用户可以通过勾选这些复选框来选择或排除特定的特征或结果。这种设计允许用户在多个层级上同时选择多个元素,提高了用户在复杂数据结构中的导航和选择效率...

    带单选按钮,复选框的树形结构dtree

    自己根据需要,把dtree做了一些改动,添加了单选按钮,复选框。可以选择根据需要使用单选按钮或者是复选框,内带使用示例.若有疑问,可查看http://blog.csdn.net/antti_king/archive/2008/11/06/3238949.aspx,有...

    dtree树,带多选框

    【dtree树与多选框】控件是一种在前端开发中常见的交互元素,它结合了树形结构和复选框的功能,广泛应用于数据层级展示、选项选择等场景。这种控件设计巧妙,允许用户通过多级展开和选择,实现对复杂数据结构的直观...

    对带checkbox的dtree树复选操作的一点改进

    "对带checkbox的dtree树复选操作的一点改进"这个主题聚焦于一个常见的UI组件——带有复选框的树形结构(dtree),它常用于展现层级关系的数据,并允许用户进行多选操作。这篇博客的作者通过分享自己的实践经验和代码...

    带右键菜单跟复选框的树控件

    "带右键菜单跟复选框的树控件"是一个典型的GUI(图形用户界面)组件,它为用户提供了一种直观的方式来管理和操作数据结构。这个标题指的是一个定制化的Dtree(可能是自定义的树形控件),该控件不仅支持传统的左键...

    复选框目录树

    复选框目录树,也称为dtree,是一种在网页用户界面中常见的交互元素,它将层级结构的数据以树形结构展示,并且每个节点都配备有复选框,用户可以通过选择复选框来选取一个或多个节点。这种设计使得用户能够方便地对...

    树形的复选框,修改后随意做成别的样式的树结构

    文件名为"dtree"的压缩包可能包含了一个名为"dtree"的库或框架,它可能是用于创建这种可定制的树形复选框的JavaScript库。这样的库通常会提供API接口和方法,使得开发人员能够方便地创建、更新和操作树结构。例如,...

    Dtree(checkbox)

    然而,通过添加复选框功能,用户可以同时选择多个节点,极大地提高了操作的灵活性。 在实现DTree的复选框功能时,我们需要考虑以下几个关键点: 1. **状态管理**:每个节点都有一个复选框,其状态需要被正确地管理...

Global site tag (gtag.js) - Google Analytics