Dynamic tree view
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default_aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" ShowLines="True" LineImagesFolder="~/TreeLineImages"/>
<asp:TreeView ID="TreeView2" runat="server">
<Nodes>
<asp:TreeNode SelectAction="Expand" Value="Windows" Text="Windows">
<asp:TreeNode SelectAction="SelectExpand" Value="Windows XP" Text="Windows XP">
<asp:TreeNode ShowCheckBox="True" Value="Home Edition" Checked="True" NavigateUrl="xphome.aspx"
Text="Home Edition"></asp:TreeNode>
<asp:TreeNode ShowCheckBox="True" Value="Professional" NavigateUrl="xpProfessional.aspx"
Text="Professional"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Target="df" Value="Windows 2003 Server" NavigateUrl="win2003.aspx"
Text="Windows Server 2003"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
</form>
</body>
</html>
File: Default.aspx.vb
Imports System.IO
Partial Class Default_aspx
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles Me.Load
If TreeView2.SelectedNode IsNot Nothing Then
Response.Write(TreeView2.SelectedNode.Text)
MsgBox(TreeView2.SelectedNode.Text)
End If
If Not IsPostBack Then
TreeView1.Nodes.Add(New _
TreeNode(Request.PhysicalApplicationPath))
getSubDirectories(Request.PhysicalApplicationPath, _
TreeView1.Nodes(0))
End If
End Sub
Public Sub getSubDirectories(ByVal path As String, _
ByVal node As TreeNode)
Dim dirs As String() = Directory.GetDirectories(path)
If dirs.Length = 0 Then
Exit Sub
Else
Dim dir As String
For Each dir In dirs
Dim newNode As New TreeNode(dir.Substring(dir.LastIndexOf("\") + 1))
newNode.ToolTip = dir
node.ChildNodes.Add(newNode)
getSubDirectories(dir, newNode)
getFiles(dir, newNode)
newNode.CollapseAll()
Next
End If
End Sub
Public Sub getFiles(ByVal path As String, ByVal node As TreeNode)
Dim files As String() = Directory.GetFiles(path)
Dim file As String
If files.Length = 0 And node.ChildNodes.Count = 0 Then
Dim newNode As New TreeNode("Directory is empty")
node.ChildNodes.Add(newNode)
Exit Sub
End If
For Each file In files
Dim newNode As New TreeNode(file.Substring(path.Length + 1))
newNode.ToolTip = file
newNode.ImageUrl = "Images\file.gif"
node.ChildNodes.Add(newNode)
Next
End Sub
End Class
Related examples in the same category