C#中的TreeView的Check选中问题

问题描述

TreeView如何实现这样的功能1.选中父节点子节点全部选中2.选中部分子节点父节点是方框选中半选中3.选中全部子节点父节点选中就像Windows一样

解决方案

解决方案二:
functionOnTreeNodeChecked(){varele=event.srcElement;if(ele.type=='checkbox'){varchildrenDivID=ele.id.replace('CheckBox','Nodes');vardiv=document.getElementById(childrenDivID);if(div==null)return;varcheckBoxs=div.getElementsByTagName('INPUT');for(vari=0;i<checkBoxs.length;i++){if(checkBoxs[i].type=='checkbox')checkBoxs[i].checked=ele.checked;}if(ele.parentNode.parentNode.parentNode.parentNode.parentNode.id=='<%=TreeUser.ClientID%>'){if(current==null){current=ele;}else{current.checked=false;childrenDivID=current.id.replace('CheckBox','Nodes');div=document.getElementById(childrenDivID);if(div!=null){checkBoxs=div.getElementsByTagName('INPUT');for(vari=0;i<checkBoxs.length;i++){if(checkBoxs[i].type=='checkbox')checkBoxs[i].checked=false;}}if(current==ele){current=null;}else{current=ele;}}}}}

解决方案三:
不好意思,帮不上忙,还没试过半选中
解决方案四:
这个我原来的项目中用到过。我找找给你复制下
解决方案五:
有半选中那就不能用自带的Checkbox了可以在几点前面加图片没选中图片选中图片半选中图片根据不同的情况换图片
解决方案六:
引用3楼jason_dct的回复:

这个我原来的项目中用到过。我找找给你复制下

大哥找到没我还是不知道如何半选中谢谢
解决方案七:
这个估计得自己写控件了,因为treeview的复选样式就两种状态,不像checkedlistbox有三种
解决方案八:
关注一下
解决方案九:
使用checkstate给checkbox赋值,有三种状态。选中checked不选中unchecked不确定interminate(类似这个名字)--你要求的半选中。
解决方案十:
关注呵呵
解决方案十一:
不好意思,看错题目了。这个问题我的解决办法是给treeviwe的imagelist添加3个分别表示三个状态的image通过设置选择的image来表示其选中状态。
解决方案十二:
//改变所有子节点的状态publicstaticvoidCheckAllChildNodes(TreeNodepn,boolIsChecked){foreach(TreeNodetninpn.Nodes){tn.Checked=IsChecked;if(tn.Nodes.Count>0){CheckAllChildNodes(tn,IsChecked);}}}//改变父节点的选中状态publicstaticvoidCheckParentNode(TreeNodecurNode,boolIsChecked){boolbChecked=true;if(curNode.Parent!=null){foreach(TreeNodenodeincurNode.Parent.Nodes){if(node.Checked==false){bChecked=false;break;}}if(bChecked){curNode.Parent.Checked=true;CheckParentNode(curNode.Parent,true);}else{curNode.Parent.Checked=false;CheckParentNode(curNode.Parent,false);}}}

解决方案十三:
半选中只能用其他控件treeview没有半选中状态!
解决方案十四:
该回复于2011-08-29 09:11:32被版主删除
解决方案十五:
functionpostBackObject(){varo=window.event.srcElement;if(o.tagName=="INPUT"&&o.type=="checkbox"){//点击treeview的checkbox是否触发vard=o.id;//获得当前checkbox的idvare=d.replace("CheckBox","Nodes");//通过查看脚本信息,获得包含所有子节点的div的idvardiv=window.document.getElementById(e);//获得div对象if(div!=null){//如果不为空,表示存在子节点varcheck=div.getElementsByTagName("INPUT");//获得div中所有的已input开始的标记for(i=0;i<check.length;i++){if(check[i].type=="checkbox"){check[i].checked=o.checked;//子节点和父节点的状态一致,即全选}}}else{//点击子节点的时候,是父节点的状态改变,即不为全选vardivid=o.parentElement.parentElement.parentElement.parentElement.parentElement;//子节点所在的divvarid=divid.id.replace("Nodes","CheckBox");//获得根节点的idvarcheckbox=divid.getElementsByTagName("INPUT");//获得所有子节点数vars=0;for(i=0;i<checkbox.length;i++){if(checkbox[i].checked){s++;}}if(s==checkbox.length){//如果全部选中或选择的是另外一个根节点的子节点,window.document.getElementById(id).checked=true;//则开始的根节点仍为选中状态}else{window.document.getElementById(id).checked=false;}}}}额,没有半选中的
解决方案:
做三种状态图片控件然后传值判断

时间: 2024-12-30 18:55:43

C#中的TreeView的Check选中问题的相关文章

怎么遍历treeview,怎么选中treeview中对应的节点

问题描述 怎么遍历treeview,怎么选中treeview中对应的节点 比如.01 .0101 .0102 .02 .0201 .0202 比如知道.0202的值,怎么遍历这个treeview并且选中.0202 Heading

Delphi中为TreeView添加单选框和复选框

打开电脑,进入Windows操作系统,在资源管理器的左边栏中清楚地显示了系统管理的所有磁盘的信息以及各个磁盘所容纳的文件与文件夹(如图一).这种常见的显示方式是由一个根节点和若干个子节点构成的,这被称为"树形结构".这种树形结构的用途非常广泛,在很多常用软件中都出现过它的身影.Windows中将这种结构封装为"树形控件",即TreeView控件,它与ListView.Button等一样都属于系统自带的通用公共控件.在Delphi中,TreeView也被封装成了VCL

Delphi中为TreeView添加单选和复选框

打开电脑,进入Windows操作系统,在资源管理器的左边栏中清楚地显示了系统管理的所有磁盘的信息以及各个磁盘所容纳的文件与文件夹(如图一).这种常见的显示方式是由一个根节点和若干个子节点构成的,这被称为"树形结构".这种树形结构的用途非常广泛,在很多常用软件中都出现过它的身影.Windows中将这种结构封装为"树形控件",即TreeView控件,它与ListView.Button等一样都属于系统自带的通用公共控件.在Delphi中,TreeView也被封装成了VCL

js获取TreeView控件选中节点的Text和Value值的方法_javascript技巧

在实际项目中,遇到一个问题,首先弹出一个新窗口,新窗口中放了一个TreeView控件,TreeView控件的数据绑定在我的上一篇随笔(TreeView绑定XML数据源C#代码示例)中有讲到,现在要解决的是,如何单击TreeView中一个节点,返回Text和Value到父页面并关闭该新窗口. 首先,在后台代码中为TreeView添加属性onclick以支持TreeView的客户端事件,代码如下: 复制代码 代码如下: if (!IsPostBack) { TreeView1.Attributes.

WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件进行控制,但对于WinForm则没有这样方便.申明一下,我在这儿所说的改变当前节点的字体与颜色,主要是在WinForm中的TreeView控件,当前选中节点后,其失去鼠标焦点后节点的字体与颜色失去了选中状态,层级一多,我们就不知道当前

创建可编辑的xml文档(之五)执行中的treeview 控件

treeview|xml|创建|控件|执行 执行中的treeview 控件  为了更完美,列表4包含了VB.NET version, or C# version 两个版本的最终treevie 控件.为了更容易使用,我重新定义了结构和代码.同时增加了KeyDown 控制来支持一些默认的快捷键例如:Control-N (新建), F2 (编辑), 和DEL (删除).  这里好象不必附加任何事件,因此最终的api 包含一个方法和八个属性,他们在表1中列出来了,他们大多数都是简单的标志,或者默认的开关

easyui-easyUI中的checkbox的默认选中问题,如何通过后台数据来设置默认选中?

问题描述 easyUI中的checkbox的默认选中问题,如何通过后台数据来设置默认选中? 通过后台的方法查询到了应该被选中的数据,并且形成一个数组,将这个数组返回到前台,前台的checkbox如何根据这个数组的数据来设置默认选中呢 解决方案 easyui combogrid设置默认选中项easyUI-Datagrid设置checkbox时默认选中 解决方案二: checkbox 设置是时候,给id ,id的规则和你要传过来的数据定义方式一样,这样,传过来的数据就能对应的找到checkbox了,

js-如果不用jquery,怎么用JS获取网页中指定标签内的选中内容?

问题描述 如果不用jquery,怎么用JS获取网页中指定标签内的选中内容? 网页有一个div,里面有些文字,鼠标选中其中一部分字,怎么能感知这一事件,然后返回选中内容. 解决方案 我在贴吧也看到类似的问题,是同一个吗? <!--支持IE9+ Firefox Chrome--> <p>这是一段测试文字</p> <script type='text/javascript'> function getSlct(){//获取选中文字 return getSelect

treeview怎么将选中的行做整行的高亮显示?

问题描述 treeview怎么将选中的行做整行的高亮显示? treeview怎么将选中的行做整行的高亮显示?现有的方式只有文字部分有高亮,不直观. 解决方案 http://bbs.csdn.net/topics/380111240 解决方案二: 对象.headrow.selectstyle 或者直接在属性里设置风格就行了