是treeview吗
比较常用的就3个:selectindexchange 选择行改变,check 节点选中,expand 节点展开
比较常用的就3个:selectindexchange 选择行改变,check 节点选中,expand 节点展开
解决方案 »
- .net中将Gridview数据导出到Excel用什么方法比较好?
- 谁能写出这个验证表达式?写好了就是100分.
- gridview中加入个dropdownlist,编辑时dll显示值问题
- 高难度SQL,急求高手解救,小弟不胜感激
- 跪求!生成网站的时候vs2005提示有个错误,生成失败,但这个错误不显示位置!
- 网站注册页面用户名文本框想让它只能输入英文字母和数字 怎么实现 各位大哥大姐帮帮小弟
- 插入数据库出错呀!!!
- 对数据库还有不明白的地方
- 关于如何动态添加dataset里面得datatable列
- 关于datagrid的一个奇怪问题
- 简单的textbox问题!!再次送分!
- Datagrid绑定数据的问题?
~Index 获取树节点在树节点集合中的位置。
~Nodes 获取分配给树视图控件的树节点集合。
~Parent 获取或设置控件的父容器。
~SelectedNode 获取或设置当前在树视图控件中选定的树节点。
~ExpandAll 展开所有树节点。
~Checked 获取或设置一个值,用以指示树节点是否处于选中状态。
~Text 获取或设置在树节点标签中显示的文本。
~Expand 展开树节点。
~Clear 清空树
~Remove 从树视图控件中移除当前树节点。
以上由其他网友总结,补充:
~Height 控件的高度
~Width 控件的宽度
~BackColor 背景颜色
~BorderColor 边框颜色
~BorderStyle 边框样式
~BorderWidth 边框宽度
~CssClass 应用于该控件的CSS类名
~ExpandedImageUrl 展开时显示的节点图标
~ImageUrl 未选择或展开是显示的节点图标
~SelectedImageUrl 选中状态下显示的节点图标
~Indent 缩进距离,只有在ShowLines设为TRUE时才生效。
~ShowLines 是否显示层级连接线
~ShowPlus 是否显示+/-符号按钮
~ShowToolTip 在有父节点上显示工具提示(+/-号的使用展开/关闭)。
~AccseeKey 控件使用的键盘快捷键
~AutoSelect 为TRUE时,当用键盘移动节点时,自动选择新节点
~AutoPostBack 当改变状态时,自动回存
~Enabled 控制控件的启用状态
~EnableViewState 控件是否自动保存其状态以用于往返行程
~ExpandLevel 初始化控件是展开节点的层数
~SelectExpands 当选中一个接点时,是否自动展开该节点
~TabIndex TAB键次序
~Visible 控件是否可见3.实用技巧:
1)怎样点击文字(不是+/-号)即可展开(收缩)子节点
将TREE的ShowToolTip 属性设为false即可。2)当鼠标指到某父接点时,如何不显示显示“节点名:user +/- to expand/collapse”
将TREE的SelectExpands 属性设为TRUE即可。3)不显示树型的问题
首先:控件包没装好,使用上边介绍的控件包装一下试试。
其次:TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.04)关于闪烁
将AutoPostBack属性设置为真,SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话,将AutoPostBack属性设置为FALSE.5)如何实现用键盘上下左右键移动焦点时,自动选择新节点并执行新节点
将TREE的AutoSelect 属性设为TRUE即可。6)不想显示+/-符号按钮怎么做?
将TREE的ShowPlus 属性设为False即可。7)不想显示层级连接线怎么做?
将TREE的ShowLines 属性设为False即可。
树控件使用小结
1.使用初步(1)下载地址
http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp(2)不显示树型的问题
首先:下载包分自动安装和手动安装两种包。
要下载大小约650K 的自动安装包。
其次:TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.0(3)关于闪烁
将AutoPostBack属性设置为真,SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话,将AutoPostBack属性设置为FALSE. (4)常用的几个属性和方法
~Index 获取树节点在树节点集合中的位置。
~Nodes 获取分配给树视图控件的树节点集合。
~Parent 获取或设置控件的父容器。
~SelectedNode 获取或设置当前在树视图控件中选定的树节点。
~ExpandAll 展开所有树节点。
~Checked 获取或设置一个值,用以指示树节点是否处于选中状态。
~Text 获取或设置在树节点标签中显示的文本。
~Expand 展开树节点。
~Clear 清空树
~Remove 从树视图控件中移除当前树节点。(5)常用的几个操作:增加、删除、修改、剪切@增加节点:
Dim tmpNd3 As New Microsoft.Web.UI.WebControls.TreeNode()
Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode()
'NdSel 为当前选定的节点,新节点将作为它的子节点
NdSel = Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex)
tmpNd3.Text = "新增节点"
'在树中添加这个新节点
NdSel.Nodes.Add(tmpNd3)
@删除节点:
Dim tmpNd3 As New Microsoft.Web.UI.WebControls.TreeNode()
Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode()
'NdSel 为当前选定的要删除节点,tmpNd3为它的父节点
NdSel = Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex)
If (Treepaybasic.SelectedNodeIndex <> "0") Then
tmpNd3 = NdSel.Parent
tmpNd3.Nodes.Remove(NdSel)
Else
Treepaybasic.Nodes.Clear()
End If
@修改节点:
Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode()
NdSel = Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex)
NdSel.Text = "aaa"
@剪切和粘贴
剪切:
Dim tmpNd3 As New Microsoft.Web.UI.WebControls.TreeNode()
Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode()
'NdSel 为当前选定的要删除节点,tmpNd3为它的父节点
NdSel = Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex)
'将剪切下来的节点存入session
Session("node") = NdSel
If (Treepaybasic.SelectedNodeIndex <> "0") Then
tmpNd3 = NdSel.Parent
tmpNd3.Nodes.Remove(NdSel)
End If
粘贴:
Dim tmpNd3 As New Microsoft.Web.UI.WebControls.TreeNode()
Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode()
'NdSel 为当前要粘贴节点的父节点
NdSel = Treepaybasic.GetNodeFromIndex(Treepaybasic.SelectedNodeIndex)
tmpNd3 = Session("node")
NdSel.Nodes.Add(tmpNd3)
2.用递归生成树的算法和数据库设计
(1)递归说明
程序调用自身的编程方法称为递归(recursion)。在树的生成以及图的遍历中,递归用的很多。经典的算法求 n! (求n的阶乘)中,用的就是递归方法。递归算法的优点就是简洁,可扩充性好。但是缺点也很明显:低效。因为递归就是程序不断调用自身,对系统的资源消耗比较大。随着节点的增多,执行效率会变的很低。
为了解决树在生成过程中的层树不定的问题,同时也是为了让树的扩展性更好。树的生成使用了递归的方法。生成树的代码一旦写成,可以不改动源代码,生成无限级层次的树。树的结构完全由数据库中表的数据决定。
(2)数据库设计
创建一个数据库,设计树图信息表Treetable,表中属性包含Nodeid、Parentid、Nodename、Address等字段(分别用于表示节点的ID、父节点ID、节点名称、链接地址),其它属性根据实际用户需求和设计而定。节点名称Nodename将在树型控件的节点上显示,Nodeid字段保存节点的唯一标识号,Parentid表示当前节点的父节点ID号(例如有两个节点是父子关系,孩子节点的Parentid值就是其父节点的Nodeid),节点号父子相接组成了一个“链表”,表征并记录了树上节点的层次结构。
表具体设计如下:(简化模型,实际使用的要复杂一些)主键 属性名 类型 长度 可空 属性含义
是 Nodeid int 6 否 节点ID
Parentid int 6 否 父节点ID
Nodename char 50 否 节点名称
Address char 80 可 链接地址备注:链接地址 主要是用在: 树在框架中使用的环境。链接可以指向其他框架页中的地址或是带不同的参数。
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWindowsFormsTreeViewMembersTopic.htm