2009-11-08 59 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

相关问题