Mega Code Archive

 
Categories / ASP.Net / Asp Control
 

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