0

我正在根据服务器上的文件结构构建一个菜单。所以,这是文件结构:

Videos
    Reports 
        Customers
    SetUp
        Customers
        Products

所以,我写了这段代码

System.IO.DirectoryInfo RootDir = new System.IO.DirectoryInfo(Server.MapPath("~/Videos"));
RadMenuItem RootNode = OutputDirectory(RootDir, null);
videoMenu.Items.Add(RootNode);

在输出目录中,我将遍历它们并返回它们。所以,现在我想要如下所示的输出:

Reports 
    Customers
SetUp
    Customers
    Products

我不希望视频成为父级。相反,希望报告和设置位于顶部。你能帮我么。

4

2 回答 2

0

听起来您需要向 RadMenu(报告、设置等)添加多个父级节点,而不是仅添加单个 RootNode。无论你的OutputDirectory方法在做什么,让它返回“视频”的子节点作为节点的 IEnumerable,并添加这些节点而不是 RootNode。

于 2012-05-15T19:35:08.467 回答
0

您可能需要一个递归函数。像这样的东西:

void Main()
{   
    var dirs = new DirectoryInfo(Server.MapPath("~/Videos")).GetDirectories();
    CreateTree(videoMenu.Items, dirs):
}

public void CreateTree(IList<RadMenuItem> parantCollection, IEnumerable<DirectoryInfo> parentDirs)
{
    foreach (var dir in parentDirs)
    {
        var node = OutputDirectory(dir, null);
        parantCollection.Add(node);
        CreateTree(node.Items, dir.GetDirectories());
    }
}
于 2012-05-15T19:44:41.237 回答