这个是我以前写的一篇文章,后来又写了一篇,贴了所有的代码。地址:http://wallimn.iteye.com/blog/332604
做WEB程序的人多数应该听说过dtree,这个插件还不错,简单、效率还算可以,而且可以在cookie中保存树的状态(刷新页面树会保持节点展开、收拢状态),如果节点量不是很大的情况下,是个不错的选择。我在好几个项目里都用到过。但这个插件不带checkbox,这不能不说是个遗憾,因为这个应用场合还是很多的。
现在对javascript程序有了较多的了解,决定自己给dtree添上这个功能,写这两句话的意思是告诉大家,在已有插件的基础上DIY并不是很困难,呵呵。just do it。
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);
}
基本这样这可以了。如果嫌以上叙述不清楚,或者想省事不想自己修改,可以跟我联系索取所有源码。
我还使用jsp对这个树形控件进行了封装,这个封装使用很简单。利用jsp:include标签包含我封装的jsp文件,传入参数(jsp:param):从数据库中取记录的SQL语句,可自动在页面上根据数据库记录生成树形控件。如果你的系统中大量用到树形控件,这会对你有很大的帮助。
请到我的网络硬盘下载:http://wallimn.ys168.com
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2008-07-13
博客:http://blog.csdn.net/wallimn http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
分享到:
相关推荐
在Android开发中,实现树形结构的多选CheckBox是一项常见的需求,主要用于展现层次关系的数据,并允许用户进行多项选择。这个“Android 树形结构的多选CheckBox”项目提供了一个易于集成和使用的解决方案。 首先,...
在本文中,我们将深入探讨如何将Silverlight的树形下拉控件转化为WPF(Windows Presentation Foundation)环境下的使用,并以此创建一个名为“wpf_combobox_tree”的自定义控件。这种控件通常用于增强传统的ComboBox...
mtree1.0是基于javascript的树形控件,主要实现了基本树形控件和树形表格功能,可以使用复选框(checkbox)。 代码简洁,调用方法简单,容易上手。 由于受dtree影响较深,里面的编程思想抹不去dtree的影子,我也希望我...
EasyUI 是一个基于 jQuery 的轻量级前端框架,它提供了丰富的组件,包括表格、对话框、菜单、按钮、树形控件等,帮助开发者快速构建用户界面。在本主题中,我们将深入探讨“EasyUI 树形控件展示”及其在实际应用中的...
"mtree1.0-checkbox-tableTree-带复选框树形控件"是一个专门设计用于Web应用的组件,它集成了复选框功能的树形表格控件。这个控件允许用户在树形结构中选择一个或多个节点,通过复选框进行操作,增加了交互性和数据...
在这里,"FlexViewer 树形结构带checkbox"意味着在树形控件的每个节点上都添加了一个复选框,用户可以通过勾选这些复选框来控制与之关联的地图元素。 事件处理是Flex编程中的关键部分,特别是在用户交互丰富的应用...
用于web 多列树形控件(TreeListView)支持自定义列,行高任意调整,结合js可尽情扩展。 现在发布2.0版本, 1. 重写了全部代码。 2. 简化了html。 3. 支持自定义列。 4. 支持 checkbox 5. 原理...
这段代码创建了一个树形控件,其中每个节点都有一个CheckBox,它的IsChecked属性绑定到节点的IsSelected属性。这种方式使得选中状态可以在视图模型中双向同步。 为了获取所有选定节点的集合,我们需要在后台代码...
总结,"带checkbox的树"是一个结合了树形结构和复选框功能的交互组件,其核心在于通过JavaScript(可能是jQuery)实现节点的交互逻辑和复选状态管理。个人自制的版本可能具有独特的功能和优化,适应特定的使用场景。...
总的来说,带有Checkbox的树状控件是一个功能强大的工具,它结合了树形结构的可视化和多选操作的便利性,广泛应用于各种应用程序中。通过深入理解并实践相关源代码,开发者可以增强自己在用户界面设计和实现方面的...
综上所述,"树形显示的checkbox的三态"是一个结合了数据结构、前端交互和用户体验设计的复杂功能。通过JavaScript和HTML,我们可以创建一个允许用户以直观和高效的方式操作具有层次关系数据的界面,同时提供三态复选...
在PowerBuilder中,带复选框的树形控件是一种常用的数据展示方式,它结合了树形结构的层次感和复选框的选择功能,让用户能够更直观地进行多级选择和操作。本实例18主要讲解如何在PowerBuilder应用程序中创建和使用...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)来实现一个具有复选框的层级联动树形菜单。这个功能丰富的菜单不仅允许用户通过右键操作进行展开、关闭、选择和反选所有节点,而且在选择...
在这个场景下,描述中提到的"树形控件 用js写的,还带checkbox"意味着我们将会讨论如何使用JavaScript来构建一个具有复选框功能的树形控件。 树形控件通常由节点(nodes)组成,这些节点可以展开或折叠,展示其子...
需求: vue-cli项目树形控件:一级节点为本地节点,默认展开一级节点,增删改后局部刷新数据。 增加节点,点击确定后局部刷新,渲染新数据。 源码 element组件样式 <el-tree class="treeitems" :data="data...
关于标签中提到的“vc树形控件”,这是指使用VC++进行开发时所使用的树形视图控件,通常是CTreeCtrl类。而“treelistctl”和“treelist”则是对特定实现的TreeList控件的简称,可能是指第三方库或者自定义的控件类。...
在JavaScript编程中,将XML数据转化为树形控件是一种常见的需求,特别是在构建动态网页和富客户端应用时。本文将深入探讨如何使用JavaScript处理XML数据并创建具有复选框功能的树形控件。 首先,我们需要了解XML...
CheckBoxTreeView for Delphi7 树状视图复选框组件。 该组件是一个树状视图组件。 每一个树图节点有核查框(复选框)。 该组件适合开发用户分组程序。 该组件是自编组件。编制单位:重庆千科文化传播有限责任公司。
zTree 非常强大的树形控件 、zTree v3.0 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 Dom。 2)、对于每级节点最多一百左右,但总节点数几千甚至几万,且不是全部...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)技术实现一个具有层次结构的Checkbox树形菜单,以及如何实现右键菜单功能,包括展开所有、关闭所有、选择所有和反选所有。WPF是.NET框架的...