为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作者没有加上复选框功能,我用来做用户模块权限功能的时候很不好用,网上也找到一些基于dtree添加了checkbox的修改版,但是用起来很不顺手,最后不得不根据自己的需要一再修改成了现在这个版本。...
实现复选框dtree时,我们需要修改dtree的源码,添加复选框元素并处理它们的勾选状态。同时,还需要考虑父子节点之间的关联性,比如父节点的勾选状态应根据其所有子节点的勾选状态自动更新。 在提供的压缩包中,可能...
- **复选功能**:每个节点都可以添加复选框,用户可以进行单选或多选操作。 - **状态管理**:能够跟踪和管理所有节点的选择状态,包括全选、反选、清除选择等。 - **事件处理**:提供丰富的事件接口,如点击复选框时...
实现复选框功能,需要在每个树节点上添加复选框元素,并绑定事件监听器。当用户点击复选框时,前端会触发一个事件,更新选中状态并可能向服务器发送请求以记录用户的选中操作。服务器端则需要有相应的逻辑来处理这些...
【压缩包子文件的文件名称列表】:只有一个名为“dtree”的文件,这可能是包含了实现带复选框的dtree功能的源代码文件、库文件或者配置文件。通常,这样的文件可能包含以下部分: - **示例代码**:演示如何创建和...
`dtree` 是一种常用于创建可交互的树形结构组件,它允许用户通过单选按钮(radiobox)和复选框(checkbox)进行选择。本文将深入探讨如何使用 `dtree` 来读取这些选择的值,以及如何根据需求进行定制。 首先,`...
### dtree用法详解:集成右键菜单及复选框功能 #### 一、dtree简介 dtree 是一个基于 JavaScript 的轻量级树形菜单组件,它支持自定义节点内容,包括添加链接、图标等元素。此外,dtree 还提供了一些基本的功能,如...
本篇文章将深入探讨如何在`dtree`中实现延迟加载和复选框的单选功能。 首先,让我们理解一下`dtree`的延迟加载(lazy loading)机制。延迟加载是一种优化策略,用于处理大量数据时提高性能。在树结构中,不是一次性...
2. **复选框交互**:为每个节点添加复选框,用户可以选择单个节点或多个节点,同时保持父子节点间的选择关联性,例如父节点的选中状态会根据其所有子节点的选中状态自动更新。 3. **事件监听**:监听复选框的点击...
它涉及到的技术包括`jQuery`用于前端交互,dtree实现树形结构并添加复选功能,日期控件提供日期选择,以及数据库的建表、插入数据等后端操作。这样的项目对于学习Web开发,特别是前后端协作和交互设计,具有很高的...
树形复选框(dtree)是一种用户界面组件,常用于数据组织和筛选,尤其在网页和应用程序设计中。它结合了树结构和复选框的功能,允许用户以层次化的方式选择一组相关的选项。在dtree中,每个节点都可以是一个复选框,...
2. **CheckBoxNode**:为了添加复选框功能,我们需要创建一个自定义节点类,继承自DefaultMutableTreeNode,添加一个布尔属性表示选中状态,并重写相关方法如toString()以显示带有复选框的节点文本。 3. **...
而在“带复选框的Dtree”中,每个节点都添加了一个复选框,用户可以通过勾选这些复选框来选择或排除特定的特征或结果。这种设计允许用户在多个层级上同时选择多个元素,提高了用户在复杂数据结构中的导航和选择效率...
自己根据需要,把dtree做了一些改动,添加了单选按钮,复选框。可以选择根据需要使用单选按钮或者是复选框,内带使用示例.若有疑问,可查看http://blog.csdn.net/antti_king/archive/2008/11/06/3238949.aspx,有...
【dtree树与多选框】控件是一种在前端开发中常见的交互元素,它结合了树形结构和复选框的功能,广泛应用于数据层级展示、选项选择等场景。这种控件设计巧妙,允许用户通过多级展开和选择,实现对复杂数据结构的直观...
"对带checkbox的dtree树复选操作的一点改进"这个主题聚焦于一个常见的UI组件——带有复选框的树形结构(dtree),它常用于展现层级关系的数据,并允许用户进行多选操作。这篇博客的作者通过分享自己的实践经验和代码...
"带右键菜单跟复选框的树控件"是一个典型的GUI(图形用户界面)组件,它为用户提供了一种直观的方式来管理和操作数据结构。这个标题指的是一个定制化的Dtree(可能是自定义的树形控件),该控件不仅支持传统的左键...
复选框目录树,也称为dtree,是一种在网页用户界面中常见的交互元素,它将层级结构的数据以树形结构展示,并且每个节点都配备有复选框,用户可以通过选择复选框来选取一个或多个节点。这种设计使得用户能够方便地对...
文件名为"dtree"的压缩包可能包含了一个名为"dtree"的库或框架,它可能是用于创建这种可定制的树形复选框的JavaScript库。这样的库通常会提供API接口和方法,使得开发人员能够方便地创建、更新和操作树结构。例如,...
然而,通过添加复选框功能,用户可以同时选择多个节点,极大地提高了操作的灵活性。 在实现DTree的复选框功能时,我们需要考虑以下几个关键点: 1. **状态管理**:每个节点都有一个复选框,其状态需要被正确地管理...