TreeView VB中的目录结构

时间:2009-05-25 16:24:27

标签: asp.net treeview

开始查看Treeview控件。

是否有使用Visual Basic将Tree View控件绑定到Web服务器上的Directory结构?

我有很多遗留文件,经常更新和添加。显然,我可以用XML编写结构代码,但这对于最终用户来说很费力且很难训练。

我想这可能是动态创建XML文件吗?

2 个答案:

答案 0 :(得分:4)

这是我在学习使用TreeView时不久前创建的基本示例。我现在使用online converter将代码转换为VB.NET,以便您获益。

它从虚拟目录的根目录开始递归遍历目录树,并为遇到的每个子目录或文件创建节点。我认为这正是你所需要的。

对于视觉分离,我使用图标来区分文件夹和文件夹(folder.gif和file.gif)。如果需要,可以删除该参数。

完整的ASPX如下(您可以将其粘贴到新页面中并且应该运行):


<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>

<script runat="server">
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    If Not Page.IsPostBack Then
      Dim rootDir As New DirectoryInfo(Server.MapPath("~/"))

      ' Enter the RecurseNodes function to recursively walk the directory tree. 
      Dim RootNode As TreeNode = RecurseNodes(rootDir)

      ' Add this Node hierarchy to the TreeNode control. 
      Treeview1.Nodes.Add(RootNode)
    End If
  End Sub

  Private Function RecurseNodes(ByVal thisDir As DirectoryInfo) As TreeNode
    Dim thisDirNode As New TreeNode(thisDir.Name, Nothing, "Images/folder.gif")

    ' Get all the subdirectories in this Directory. 
    Dim subDirs As DirectoryInfo() = thisDir.GetDirectories()
    For Each subDir As DirectoryInfo In subDirs
      thisDirNode.ChildNodes.Add(RecurseNodes(subDir))
    Next

    ' Now get the files in this Directory. 
    Dim files As FileInfo() = thisDir.GetFiles()
    For Each file As FileInfo In files
      Dim thisFileNode As New TreeNode(file.Name, Nothing, "Images/file.gif")
      thisDirNode.ChildNodes.Add(thisFileNode)
    Next

    Return thisDirNode
  End Function
</script>

<html>
<head>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:treeview ID="Treeview1" runat="server"></asp:treeview>
    </form>
</body>
</html>

答案 1 :(得分:2)

自定义站点地图提供商是一个不错的选择。

有一篇关于4guys标题的文章“检查ASP.NET 2.0的网站导航 - 第4部分”