древовидная структура, динамически заселенная - PullRequest
1 голос
/ 17 января 2011

У меня есть этот древовидный элемент управления, в который я хочу поместить загруженные файлы на сервер. Я хочу иметь возможность создавать узлы и дочерние узлы динамически из базы данных. Я использую этот запрос для получения данных из БД:

 SELECT c.Category, d.DocumentName FROM Categories c  
  INNER JOIN DocumentUserFile d
  ON c.ID = d.CategoryId
  WHERE d.UserId = '9rge333a-91b5-4521-b3e6-dfb49b45237c'

Результат этого запроса:

Agendas

transactions.pdf

минут

accounts.pdf

Я тоже хочу отсортировать дерево. Я пытаюсь с этим фрагментом кода:

TreeNode tn = new TreeNode();
TreeNode tnSub = new TreeNode();               
foreach (DataRow dt in tblTreeView.Rows)
{

    tn.Text = dt[0].ToString();
    tn.Value = dt[0].ToString();
    tnSub.Text = dt[1].ToString();
    tnSub.NavigateUrl = "../downloading.aspx?file=" + dt[1].ToString() +"&user=" + userID;
    tn.ChildNodes.Add(tnSub);
    tvDocuments.Nodes.Add(tn);
}

Я получаю древовидное представление, красиво заполненное для 1-й категории и документа в этой категории, но я не могу заставить его работать, когда я хочу показать больше документов в этой категории, или еще более сложно показать новую категорию под 1-й с документами из этой категории. Как я могу решить это? Я очень ценю ответы. Спасибо, Лазиале

1 Ответ

1 голос
/ 17 января 2011

Вы должны создать новые узлы для каждого элемента:

// TreeNode tn = new TreeNode();
// TreeNode tnSub = new TreeNode();               
foreach (DataRow dt in tblTreeView.Rows)
{
    TreeNode tn = new TreeNode();     // *
    tn.Text = dt[0].ToString();
    tn.Value = dt[0].ToString();

    TreeNode tnSub = new TreeNode();  // *
    tnSub.Text = dt[1].ToString();
    tnSub.NavigateUrl = "../downloading.aspx?file=" + dt[1].ToString() +"&user=" + userID;
    tn.ChildNodes.Add(tnSub);
    tvDocuments.Nodes.Add(tn);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...