所以我有一个TreeView,它有大约7个父节点,每个节点有3-5个子节点。单击导航到URL时,所有这些子节点。我想要做的是让一个父节点根据URL和要折叠的其他父节点自动展开。
如果不清楚,这是一个例子:
Root
|
|--Admin
| |
| |--Add.aspx
| |--Delete.aspx
|
|
|
|--Purchases
|
|--Orders.aspx
|--Stock.aspx
假设用户点击了Orders.aspx,这会将它们导航到该页面,当它发生时,我希望树视图折叠所有父节点,并展开当前的父节点。因此管理员将崩溃,购买将会扩大。
到目前为止我的尝试是:
Protected Sub resize(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.Load
For Each node As TreeNode In (CType(sender, TreeView)).Nodes
If node.NavigateUrl = GetCurrentPage() Then
For Each parentN As TreeNode In (CType(sender, TreeView)).Nodes
If Not (parentN.Parent.Selected = True And node.Parent.Text = parentN.Parent.Text) Then
parentN.Collapse()
Else : parentN.Expand()
End If
Next
End If
Next
End Sub
Public Shared Function GetCurrentPage() As String
Return System.IO.Path.GetFileName(HttpContext.Current.Request.Url.AbsolutePath).ToLower
End Function
我不确定该怎么做。
答案 0 :(得分:1)
除非你的树比你描述的更复杂,为什么这个循环不起作用?
For Each node As TreeNode In (CType(sender, TreeView)).Nodes
If node.NavigateUrl = GetCurrentPage() Then
node.Expand()
Else
node.Collapse()
End If
Next