Заполните TreeView от DataBase

15
задан WorkSmarter 22 May 2019 в 21:46
поделиться

3 ответа

Это, вероятно, будет что-то вроде этого. Предоставьте еще некоторую подробную информацию относительно того, что точно Вы хотите сделать при необходимости в больше.

//In Page load
foreach (DataRow row in topics.Rows)
{
    TreeNode node = new TreeNode(dr["name"], dr["topicId"])
    node.PopulateOnDemand = true;

     TreeView1.Nodes.Add(node);
 }
 ///
 protected void PopulateNode(Object sender, TreeNodeEventArgs e)
 {
     string topicId = e.Node.Value;
     //select from topic where parentId = topicId.
     foreach (DataRow row in topics.Rows)
     {
         TreeNode node = new TreeNode(dr["name"], dr["topicId"])
         node.PopulateOnDemand = true;

         e.Node.ChildNodes.Add(node);
     }

 }
14
ответ дан 1 December 2019 в 01:06
поделиться

Не совсем.

Деревья обычно обрабатываются лучше всего, не загружая все, что Вы можете сразу. Таким образом, необходимо получить корневой узел (или тема), который не имеет никакого parentIDs. Затем добавьте их к корневому узлу деревьев, и затем для каждого узла Вы добавляете, что необходимо получить его детей.

foreach (DataRow row in topicsWithOutParents.Rows)
{
   TreeNode node = New TreeNode(... whatever);
   DataSet childNodes = GetRowsWhereParentIDEquals(row["topicId"]);
   foreach (DataRow child in childNodes.Rows)
   { 
       Treenode childNode = new TreeNode(..Whatever);
       node.Nodes.add(childNode);
   }
   Tree.Nodes.Add(node);
}
7
ответ дан 1 December 2019 в 01:06
поделиться

Когда нет больших объемов данных, не рекомендуется подключать базу данных, извлекать данные и снова и снова добавлять в узел дерева для дочерних / подузлов. Это можно сделать с одной попытки. См. Следующий образец:
http://urenjoy.blogspot.com/2009/08/display-hierarchical-data-with-treeview.html

5
ответ дан 1 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: