2009-11-08 50 views
0

所以我有一個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 

我真的不知道如何去了解這一點。

回答

1

除非你的樹比你描述的更復雜,爲什麼這個循環不起作用?

For Each node As TreeNode In (CType(sender, TreeView)).Nodes 
    If node.NavigateUrl = GetCurrentPage() Then 
     node.Expand() 
    Else 
     node.Collapse() 
    End If 
Next 
+0

我想這會,但是我會怎麼處理?截至目前,我有Handle TreeView1.SelectedNodeChanged,但似乎甚至不執行。我通過在其中放置一個斷點來進行測試,並且從未停止過。 – Justen 2009-11-08 05:07:03

相關問題