For Each dvrow In dv
tmpNode = New Microsoft.Web.UI.WebControls.TreeNode()
'为当前节点的各个属性赋值。
tmpNode.ID = dvrow("nodeID")
tmpNode.Text = dvrow("nodename")
tmpNode.NavigateUrl = dvrow("Address")
intId = dvrow("parentID")
赫赫,这能不是死循环吗,法帖的哥们这段程序不是你自己写的吧!!!
点击节点后,显示与节点相关的数据:
程序结构就是使用框架,在左边显示树,在右边显示与树节点相关的信息。
A页面:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Page.IsPostBack = False Then
CreateReaderDataSet()
'调用生成树的函数,生成工资标准树。其中Treepaybasic是TreeView的ID,999是根节点的父ID(事实上不存在)
inittree(Treepaybasic.Nodes, 999)
End If
End Sub
'生成树的函数
Private Sub inittree(ByRef Nds As Microsoft.Web.UI.WebControls.TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As Microsoft.Web.UI.WebControls.TreeNode
'intId为数值型变量,其作用是记录并传递当前记录的ID,做为它子节点的PARENTID值
Dim intId As Integer
dv.Table = mySet.Tables("paybasic")
'parentId传递的是 additem函数中的intId.下面语句的作用是找出当前节点的子孩子集合。
dv.RowFilter = "parentID='" & parentId & "'"
'如果当前节点有孩子,则遍历所有的孩子,并调用递归函数。
For Each drv In dv
tmpNd = New Microsoft.Web.UI.WebControls.TreeNode()
'为当前节点的各个属性赋值。
tmpNd.ID = drv("payID")
tmpNd.Text = drv("name")
////最需要的一条语句
tmpNd.NavigateUrl = ◎◎##、、根据需要添加链接
intId = drv("payID")
'添加一个节点,然后直接找它的孩子
Nds.Add(tmpNd)
'相当于函数的嵌套。
inittree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub