您现在的位置: 网页制作教程网 >> 网络编程 >> Asp.net 教程 >> ASP.NET 实例教程 >> 文章正文

ASP.NET中树形图的实现 3

作者:AspCool

来源:ASPCool.com

热度:

2006-12-22 10:13:13

三、修改、移动树节点
  
    由于服务器控件不支持鼠标拖动事件,所以不能象Windows程序那样通过拖动移动节点,这里是通过选择父节点的方式。移动是通过在原位置删除,新位置添加实现的,要注意在删除时先保存节点信息。 

 Private Sub TreeView1_SelectedIndexChange(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs) Handles TreeView1.SelectedIndexChange
  Dim dv As New DataView()
  dv.Table = ds.Tables("tree")
  Dim tmpNd As TreeNode = TreeNdSel(e.OldNode), tmpNds As TreeNodeCollection
  dv.RowFilter= "NODEID=" & tmpNd.ID
  dv(0)("NODE_DESCRIPT") = Me.TextBox1.Text
  dv(0)("ADDRESS") = Me.TextBox2.Text
  dv(0)("TARGET") = Me.TextBox3.Text
  dv(0)("ICON") = Me.TextBox4.Text
  If dv(0)("PARENTID").ToString <> Me.DropDownList1.SelectedItem.Value Then
  ‘移动节点
  dv(0)("PARENT_NAME") = Me.DropDownList1.SelectedItem.Value
  If Me.DropDownList1.SelectedItem.Value = "ROOT" Then
  tmpNds = TreeView1.Nodes
  Else
  tmpNds = FromIdToNode(Me.DropDownList1.SelectedItem.Value, TreeView1.Nodes).Nodes’新的父节点的Nodes集合
  End If
  GetNdCol(e.OldNode).Remove(tmpNd)
  tmpNds.Add(tmpNd)
  End If
  tmpNd.Text = Me.TextBox1.Text
  tmpNd.ImageUrl = Me.TextBox4.Text
  tmpNd = TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex)
  dv.RowFilter= "NODEID=" & tmpNd.ID
  Me.TextBox1.Text = dv(0)("NODENAME").ToString
  Me.TextBox2.Text = dv(0)("ADDRESS").ToString
  Me.TextBox3.Text = dv(0)("TARGET").ToString
  Me.TextBox4.Text = dv(0)("ICON").ToString
  End Sub
  Private Function FromIdToNode(ByVal ID As String, ByVal Nds As TreeNodeCollection) As TreeNode
  ‘由关键字查找节点
  Dim i As Integer
  Dim tmpNd As TreeNode, tmpNd1 As TreeNode
  For Each tmpNd In Nds
  If tmpNd.ID = ID Then
  Return tmpNd
  Exit Function
  End If
  tmpNd1 = FromIdToNode(ID, tmpNd.Nodes)
  If Not (tmpNd1 Is Nothing) Then
  Return tmpNd1
  Exit Function
  End If
  Next
  Return Nothing
  End Function

四、结束语
  
    以上阐述ASP.NET中树状显示的基本方法,以及如何在对树节点进行维护(增加、删除、修改、移动)的同时,修改数据库数据。由于篇幅所限,笔者在此只对基本思路和流程及关键步骤作了介绍,并未列出详细源代码,读者可自行完善。需要详细源代码者可与我联系,本文程序在VS.NET、SQLServer、Windows 2000、IIS5.0下调试通过。

转自酷网动力(www.ASPCOOL.COM)。

我来说两句:

1分 2分 3分 4分 5分
姓名: *


* 请各位网友遵纪守法并注意语言文明。
网站简介 | 联系方式 | 意见建议 | 版权说明
Copyright © 2007 All rights reserved
滇ICP备06006992号