Dynamic tree view : TreeView « Asp Control « ASP.Net






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

1.A basic TreeView control
2.A TreeView control with the MSDN style applied to it
3.Binding a TreeView control to the Data.xml file
4.Add check boxes to leaf nodes (C#)
5.Add check boxes to leaf nodes (VB)
6.Applying custom images to the TreeView control
7.Expanding and collapsing the nodes of the TreeView control programmatically (C#)
8.Expanding and collapsing the nodes of the TreeView control programmatically (VB)
9.Expanding specific nodes programmatically
10.Expanding nodes programmatically using the Expanded property
11.Displaying database data with a TreeView control.
12.Using Populate On Demand and AJAX
13.Formatting the TreeView Control
14.Using Styles with the TreeView control.
15.Applying styles to different TreeView node levels.
16.Adding nodes programmatically to the TreeView control (C#)
17.Adding nodes programmatically to the TreeView control (VB)
18.Custom TreeView Control
19.Database tree
20.TreeView Populate On Demand
21.Test TreeView
22.TreeView DataBindings
23.ParentNodeStyle in a TreeView
24.DirectoryInfo TreeView