`

给Dtree添加Checkbox

阅读更多
做 WEB 程序的人多数应该听说过 dtree,这个插件还不错,简单、效率还算可以,而且可以在cookie 中保存树的状态(刷新页面树会保持节点展开、收拢状态),如果节点量不是很大的情况下,是个不错的选择。但这个插件不带 checkbox。

dtree 的节点(Node)是个对象,所有节点保存在树(dTree)对象的一个属性里,重载了两个对象的 toString()函数,在页面显示的时候执行所有的 toString()操作。搞清程序的大致流程,改造工作就比较简单了,分以下几步:

1.给树对象的 config 对象添加一个控制 checkbox 是否显示的属性;
    this.config = {
     target      : null,
     folderLinks    : true,
     useSelection   : true,
     useCookies    : true,
     useLines     : true,
     useIcons     : true,
     useStatusText   : false,
     closeSameLevel : false,
     inOrder      : false,
     check:false   //**新加的
   }

2.修改节点对象的 toString()方法,添加...input type="checkbox"...代码;
   if(this.config.check==true){
    str+= '<input type="checkbox" id="c'+ this.obj + nodeId + '" onclick="javascript:'+this.obj+'.cc('+nodeId+')"/>';
   }

3.写 checkbox 页面元素的 onclick 事件处理函数,这个函数用来智能控件树节点的 checkbox 状态。也就是说,勾选一个节点的 checkbox,自动勾选其所有父节点及其所有子节点;取消勾选节点的 checkbox,自动取消勾选其所有子节点的勾选状态,而其父节点的勾选状态不变。这个是个比较重要的新功能,一些具有 checkbox 的页面插件并不具备这个功能,这个功能使用递归算法实现。

   dTree.prototype.cc=function(nodeId){
   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 == node.id) {
     document.getElementById("c"+this.obj+n).checked=cs;
     this.cc(n);
    }
   }
   if(cs==false)return;
   var pid=node.pid;
   var bSearch;
   do{
    bSearch=false;
    for(n=0;n<len;n++){
     if(this.aNodes[n].id==pid){
      document.getElementById("c"+this.obj+n).checked=true;
      pid=this.aNodes[n].pid;
      bSearch= true;  
      break;
     }
    }
   }while(bSearch==true);
}
分享到:
评论

相关推荐

    dtree和dtree_checkbox(dtree复选框)

    **dtree与dtree_checkbox: JS控件的深入解析** 在网页开发中,交互性和用户体验是至关重要的元素,而JavaScript(简称JS)作为客户端脚本语言,为实现这些功能提供了强大的支持。在这个话题中,我们将重点探讨两种...

    dtree_checkbox

    标题 "dtree_checkbox" 暗示我们正在讨论一个与数据树(treeview)相关的功能,特别是涉及复选框(checkbox)的实现。在IT领域,数据树是一种常用的数据结构,用于展示层次化数据,而复选框则常用于提供多选选项。这...

    dtree-checkbox-muchlin修改版

    5、加addCbx方法,专用于添加checkbox节点 二、相关方法及参数说明: 1、实例化dTree对象方法参数说明 new dTree(objName, rootDir, imgDir); objName:dTree实例对象名称, rootDir:dTree根目录, imgDir:图标...

    dtree带checkbox

    【dtree带checkbox】是一种在Java项目中常用的交互式树形结构组件,它结合了复选框(checkbox)功能,允许用户对树节点进行多选操作。在网页或桌面应用程序中,这种组件常用于数据组织和筛选,例如文件管理器、权限...

    dtree新改版-添加checkbox复选框

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

    Dtree(checkbox)

    在很多应用场景中,如文件系统、组织结构或者导航菜单,用户需要有选择多个节点的能力,这就引入了`checkbox`(复选框)功能。本文将详细介绍如何在DTree中实现复选框功能,以及它带来的便利性。 首先,我们来理解...

    dtree+checkbox

    dtree通常用于展示具有层级关系的数据,例如文件系统、组织结构或者网站导航等,而新增的checkbox特性则使得用户能够对树形节点进行多选操作,提高了用户在数据筛选、操作和选择时的便利性。 在dtree+checkbox中,...

    dtree组件 带checkbox

    **dtree组件与Checkbox功能详解** dtree组件是一款基于JavaScript实现的树形控件,它提供了丰富的功能,便于用户在Web应用中展示层次结构的数据。在这个特定的案例中,我们关注的是带有Checkbox功能的dtree,这使得...

    dtree_role.rar_dtree checkbox ro

    2. **Checkbox功能**: 在`dtree`中,添加复选框功能允许用户对树形结构中的各个节点进行多选操作。每个节点可以有一个与之关联的复选框,用户可以单独选择某个节点,也可以通过全选或选择父节点来影响其子节点的选择...

    DTree checkbox 树状菜单

    6. **扩展和自定义**:DTree可能提供多种扩展和自定义选项,如自定义节点模板、添加拖放功能、实现搜索和过滤等。理解这些高级特性有助于构建更复杂的树状菜单应用。 7. **代码示例**:博客通常会提供代码片段或...

    dtree 加入checkbox

    具体来说,当`check`属性为`true`时,代码会在每个节点前添加一个`&lt;input type="checkbox"&gt;`元素。例如: ```javascript if (this.config.check === true) { str += '&lt;input type="checkbox" id="c' + this.obj + ...

    dtree资料,整合checkbox,ajax添加

    通过在每个节点旁边添加checkbox,用户可以方便地勾选目标,然后执行批量操作如移动、删除或下载。 要实现这个功能,开发者需要在dtree的配置中定义checkbox的相关参数,包括是否显示checkbox、选择模式(如单选、...

    带checkbox的dtree

    2. **事件委托**:为了提高性能,可以使用事件委托,将事件监听器添加到dtree容器上,而不是每个节点,通过事件对象判断触发事件的节点,然后更新对应的`checkbox`状态。 3. **递归处理**:在处理子节点选中状态时,...

    带checkBox的dtree

    而“带checkBox的dtree”则可能指的是在可视化决策树的过程中,为每个节点或分支添加了复选框功能,以增强用户交互性,使得用户能够更加直观地选择、检查或修改树的结构。 【描述】:“NULL” 由于描述为空,我们...

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

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

    dtree 框架 还有checkbox 选择框

    在`dtree`中集成的`checkbox`选择框功能,则为用户提供了一种多选机制,增强了用户与树形结构的交互性。 `dtree`框架的核心特性包括: 1. **层级展示**:`dtree`能够将数据组织成树状结构,每一级节点都可以有子...

    带 checkbox 的 dtree 权限树

    "带checkbox的dtree权限树"是一种常见的实现方式,它结合了数据树(dtree)与复选框(checkbox)功能,用于展示层级关系的权限结构。这种权限树常用于角色分配、用户权限设置以及权限级别的可视化管理。 1. **dtree...

    对dtree进行的修改加上了checkbox

    在分享的代码中,开发者已经完成了对`dtree`的修改,添加了`checkbox`功能。这可能包括了对`dtree`源码的修改,或者创建了一个新的`dtree`子类来扩展功能。通过查看源代码,我们可以学习到如何在实际项目中实现类似...

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

    3. `dtree_checkbox.js`:复选框dtree的实现,修改了`dtree.js`的源码,加入了复选框元素和相应的逻辑。 4. HTML和CSS文件:用于展示和样式化dtree实例。 5. 示例数据:可能包括JSON或其他格式的数据文件,用于填充...

    我改造的checkbox_dtree

    在实现这个功能的过程中,开发者可能对"dtree"的原始JS文件进行了深入研究,理解了其内部的数据结构和事件处理机制,然后通过添加或修改代码,实现了上述的逻辑变更。这涉及到JavaScript的DOM操作、事件监听、数据...

Global site tag (gtag.js) - Google Analytics