C# TreeView无限目录树实现方法
本文实例讲述了C#TreeView无限目录树实现方法。分享给大家供大家参考,具体如下:
#region绑定客户树
protectedvoidbindTreeView()
{
TreeView1.Nodes.Clear();
stringuserid=Session["UserID"].ToString();
stringsqlwr=newSY_ADMINUSER().GetUserIDListByLoginUser(userid,"CUSTOMERSERVICE",false);
DataTabledt=Maticsoft.DBUtility.DbHelperOra.Query("SelectPARENTID,CUSTOMERID,CUSTOMERSHORT,CUSTOMERSERVICEfromCU_CUSTOMERwhereISDELETE='0'"+sqlwr+"orderbyCUSTOMERSHORT").Tables[0];
//定义临时树节点
TreeNodetmpNd;
//特殊处理
foreach(DataRowdrindt.Rows)
{
DataRow[]drs=dt.Select("CUSTOMERID='"+dr["PARENTID"]+"'");
if(drs.Length==0)//无上级节点
{
dr["PARENTID"]="0";
}
}
dt.AcceptChanges();
//从DataTable中得到所有父节点为null的DataRow形成的数组
DataRow[]rows=dt.Select("PARENTID='0'");
//遍历根节点数组
foreach(DataRowrowinrows)
{
tmpNd=newTreeNode();
//给根节点赋值
tmpNd.Value=row["CUSTOMERID"].ToString();
tmpNd.Text=row["CUSTOMERSHORT"].ToString();
tmpNd.Expanded=true;
//将节点加入到树中
TreeView1.Nodes.Add(tmpNd);
AddTree(dt,TreeView1,tmpNd,row["CUSTOMERID"].ToString());
}
}
publicvoidAddTree(DataTabledt,TreeViewtv,TreeNodepNode,stringCUSTOMERID)
{
DataRow[]rows=dt.Select("PARENTID='"+CUSTOMERID+"'");
TreeNodetmpNd;
foreach(DataRowrowinrows)
{
tmpNd=newTreeNode();
//给根节点赋值
tmpNd.Value=row["CUSTOMERID"].ToString();
tmpNd.Text=row["CUSTOMERSHORT"].ToString();
tmpNd.Expanded=true;
pNode.ChildNodes.Add(tmpNd);
//将节点加入到树中
//TreeView1.Nodes.Add(pNode);
AddTree(dt,TreeView1,tmpNd,row["CUSTOMERID"].ToString());
}
}
#endregion
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#程序设计之线程使用技巧总结》、《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。