我正在根据服务器上的文件结构构建菜单。所以,这是文件结构:
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
我不希望视频成为父级别。 INstead希望报告和设置位于顶部。能帮帮我吗。
答案 0 :(得分:0)
听起来你想要将几个父级节点添加到RadMenu(Reports,Setup等),而不是仅添加单个RootNode。无论你的OutputDirectory
方法做了什么,让它将“视频”的子节点作为IEnumerable节点返回,并添加那些而不是RootNode。
答案 1 :(得分: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());
}
}