您的位置:首页 > 数据库

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

2014-01-17 23:05 441 查看
数据库的模式 是这样的。基本一个ID,和一个ParentId来区分上下级



后台用递归简单两步就可以实现绑定。
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: