Итак, у меня есть TreeView, и у него около 7 родительских узлов, каждый из которых имеет 3-5 дочерних узлов. Все эти дочерние узлы при нажатии переходят по URL-адресу. Я бы хотел, чтобы один родительский узел автоматически разворачивался на основе URL-адреса, а другие родительские узлы свертывались.
Если это было непонятно, вот пример:
Root
|
|--Admin
| |
| |--Add.aspx
| |--Delete.aspx
|
|
|
|--Purchases
|
|--Orders.aspx
|--Stock.aspx
Допустим, пользователь щелкнул Orders.aspx, это переместит их на эту страницу, и когда это произойдет, я бы хотел, чтобы древовидное представление свернуло все родительские узлы и развернуло текущий родительский узел. Таким образом, Admin будет свернут, а Purchases расширен.
До сих пор я пытался сделать следующее:
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
Я не совсем уверен, как это сделать.