【问题标题】:Parse Url Strings into Tree Hierarchy将 URL 字符串解析为树层次结构
【发布时间】:2009-04-02 22:04:20
【问题描述】:

我有一个包含网页列表的标题表。每条记录都有一个页面 URL 字段,我希望将其解析为层次结构(TreeView)。我不确定最好的解决方法,我在让它工作时遇到了问题。

以下是 URL 的示例:

/file1.aspx
/file2.aspx
/aFolder/file.aspx
/aFolder/file2.aspx
/bfolder/file.aspx
/bFolder/cFolder/file.aspx

我想将这种类型的列表放入文件资源管理器样式的树视图中,您可以展开文件夹,然后在最后选择文件。

类似

--Root
  |
  +-aFolder
  |   - aFolderFile1.aspx
  |   - aFolderFile2.aspx
  +-bFolder
      +-cFolder
      |    -cFolderFile1.aspx
      -bFolderFile1.aspx

真实数据中显然有更多的子文件夹和文件。

我正在寻找一些代码,无论是 .NET 还是 SQL 来解析我的字符串。我尝试使用一些使用 WITHUNION ALL 的 SQL,但我无法让它为我工作。

为了将其绑定到 TreeView,数据源需要有一个父字段才能关联节点。因此,例如文件 cFolderFile1.aspx 的父级是 cFolder,而 cFolder 的父级是 bFolder,依此类推......

希望我已经提供了足够的信息。如果没有,请告诉我,我会编辑帖子。

【问题讨论】:

    标签: .net sql treeview


    【解决方案1】:

    我很确定您可以将 SqlDataSource 直接绑定到 .NET 树视图。以下是两个论坛:

    Building a Treeview From a SqlDataSource

    Dynamic treeview

    【讨论】:

    • 感谢您的链接。我不认为这些会起作用,因为它们主要处理物理文件夹,但我的在数据库中列出。在这种情况下,我没有可用于关联记录的 parentID/childID - 只有字符串中的完整 URL。
    【解决方案2】:

    感谢大家的建议。这些链接似乎都不是我想要的,所以我最终把一些东西放在一起。

    有一堆代码,但总的来说,我将 URL 列表读入具有一些额外属性的通用列表,并使用一些正则表达式语句来解析路径。

    因为 URLS 列表没有任何类型的父 ID/子 ID,所以我使用了FIND 函数并得到了我需要的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多