110,534
社区成员
发帖
与我相关
我的任务
分享
class DbClass
{
public int id { get; set; }
public int pid { get; set; }
public int cid { get; set; }
public int layer { get; set; }
public string usecount { get; set; }
}
private void addnode(TreeNode node,List<DbClass> lst,int pid)
{
List<DbClass> plist = new List<DbClass>();//开始制作当前pid的全部数据List
foreach (DbClass item in lst)
{
if (item.pid==pid)
{
plist.Add(item);
}
}
foreach (DbClass item in plist)
{
TreeNode n = new TreeNode();//制作当前node
n.Text = item.id.ToString();//这里你自己定显示文字吧
n.Tag = item.layer.ToString();//这里可以放一些你需要取出来的值
addnode(n, lst, item.id);//自调用增加子项
node.Nodes.Add(n);//把自己增加到最初的父项
}
}
至于你的List从数据库里面怎么填充无所谓,root这层的pid=0即可自动填充整个node,你第一次调用的时候用这种方式:
TreeNode n = new TreeNode();
addnode(n, 你的list, 你的root层父id);
你的treeview名.Nodes.Add(n);