关于如何递归给TreeView从数据库中循环绑定数据

数据库的模式 是这样的。基本一个ID,和一个ParentId来区分上下级

关于如何递归给TreeView从数据库中循环绑定数据 - 武二郎 - 山不在高,有仙则灵

 
后台用递归简单两步就可以实现绑定。

public void AddTree(int ParentId, TreeNode pNode, List<FileModel> list)
{

for (int i = 0; i < list.Count; i++)
{
TreeNode node1 = new TreeNode();
if (pNode == null)//判断是否为主节点
{
if (ParentId == list[i].ParentId)
{
node1.Text = list[i].FileName;
node1.Value = list[i].Id.ToString();
tw1.Nodes.Add(node1);
AddTree(list[i].Id, node1, list);
}
}
else//子节点处理
{
if (ParentId == list[i].ParentId)
{
node1.Text = list[i].FileName;
node1.Value = list[i].Id.ToString();
pNode.ChildNodes.Add(node1);
AddTree(list[i].Id, node1, list);
}

}
}
}

调用的时候用

if (!IsPostBack)
{  

List<FileModel> list = FileManager.GetAllFileForDictory();
AddTree(0, (TreeNode)(null), list);//这个list数据源是为了只读取数据方便,只读取一次。在调用方法中直接操作。 

//上面的AddTree中第一个0代表处于最高级。如果是文件夹的话,就是最外层的意思。
tw1.ExpandAll();

}

转自: http://wenku.baidu.com/link?url=GR_0lGf5-Fj-8GGY3NZKl-cGYFsTCoHd6cuJzU8sfRwp-huA8prtjW0MFHKPGTBV0M6i3x6UEIUeqtR3QRPyJdkRaWryQYkT8PerUXjZOs7
经验在于积累----武二郎
原文地址:https://www.cnblogs.com/zhanghai/p/4461196.html