当前位置: 代码迷 >> ASP.NET >> 怎么使用TREEVIEW 控件有 人有详细例子么 HELP 帮忙下 小弟我用2003 刚装 没例子回完给分
  详细解决方案

怎么使用TREEVIEW 控件有 人有详细例子么 HELP 帮忙下 小弟我用2003 刚装 没例子回完给分

热度:2006   发布时间:2013-02-26 00:00:00.0
如何使用TREEVIEW 控件有 人有详细例子么 HELP 帮忙下 我用2003 刚装 没例子回完给分
RT   着急啊   需要个TREEVIEW   的例子从数据绑定到   添加   节点     谢谢   回完马上给分

------解决方案--------------------------------------------------------
treeview的使用小结(一) 我最近做了一个程序。其中用到了treeview。在程序中,我在框架中使用了treeview。并且对treeview进行了节点的增加、删除、修改、遍历等操作。
在使用过程中,确实遇到了不少的问题。现在我把程序小结一下,希望和大家一起讨论。有什么不对的地方希望和高手们一起交流一下。也希望能对刚刚使用treeview的网友有一点帮助。 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 可 链接地址
备注:链接地址 主要是用在: 树在框架中使用的环境。链接可以指向其他框架页中的地址或是带不同的参数。
(3)程序代码
――――――――――――递归函数――――――――――――
'生成树的函数
Private Sub inittree(ByRef Nds As Microsoft.Web.UI.WebControls.TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
  相关解决方案