Заполните древовидный список списком путей в asp.net - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь заполнить древовидную структуру из списка путей, например:

Project\\PageRefresh
Project\\OrderCreation
Project\\4. Blackbox\\Demo\\1. Integrated 
Project\\4. Blackbox\\Demo\\2. Integrated 
Project\\4. Blackbox\\Demo\\2.Transactional\\DefectTests\\Cash"
Project\\4. Blackbox\\Demo\\3. Utilities\\Login"

Я хочу вывод, подобный этому:

Project
|
├───PageRefresh
├───OrderCreation
│   
│       
├───4. Blackbox
│   └───Demo
│       └───1. Integrated 
|       |___2. Integrated 
│       └───2.Transactional
│             └───DefectTests
|                 |___Cash
|       |___3. Utilities
|             |__Login

Я пробовал его сокна формы, и это работает. Теперь мне нужно перенести его в сеть. Ниже приведен код: -

private void Form1_Load(object sender, EventArgs e)
{
    var paths = new List<string>
                    {
                        @"C:\WINDOWS\AppPatch\MUI\040C",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI",
                        @"C:\WINDOWS\addins",
                        @"C:\WINDOWS\AppPatch",
                        @"C:\WINDOWS\AppPatch\MUI",
                        @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI\0409"
                    };

    TreeView treeview = new TreeView();
    treeview.Nodes.Add(PopulateTreeNode2(paths, "\\"));
}

private TreeNode PopulateTreeNode2(string[] paths, string pathSeparator)
{
    if (paths == null)
        return null;

    TreeNode thisnode = new TreeNode();
    TreeNode currentnode;
    char[] cachedpathseparator = pathSeparator.ToCharArray();
    foreach (string path in paths)            {
        currentnode = thisnode;
        foreach (string subPath in path.Split(cachedpathseparator))
        {
            if (null == currentnode.Nodes[subPath])
                currentnode = currentnode.Nodes.Add(subPath, subPath);
            else
                currentnode = currentnode.Nodes[subPath];                   
        }
    }

    return thisnode;
}

При попытке преобразовать его в asp.net я обнаружил, что treenode.Node не найден, метод TreeNode.Nodes.Add ведет себя по-разному. Буду признателен за любую помощь в преобразовании этого в Интернет. Я не много работал над веб-приложениями. Любой пример также поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...