软件编程
位置:首页>> 软件编程>> C#编程>> C# TreeView无限目录树实现方法

C# TreeView无限目录树实现方法

作者:smartsmile2012  发布时间:2023-04-20 03:05:46 

标签:C#,TreeView

本文实例讲述了C# TreeView无限目录树实现方法。分享给大家供大家参考,具体如下:


#region 绑定客户树
protected void bindTreeView()
{
 TreeView1.Nodes.Clear();
 string userid = Session["UserID"].ToString();
 string sqlwr = new SY_ADMINUSER().GetUserIDListByLoginUser(userid, "CUSTOMERSERVICE", false);
 DataTable dt = Maticsoft.DBUtility.DbHelperOra.Query("Select PARENTID,CUSTOMERID,CUSTOMERSHORT,CUSTOMERSERVICE from CU_CUSTOMER where ISDELETE='0' " + sqlwr + " order by CUSTOMERSHORT ").Tables[0];
 //定义临时树节点
 TreeNode tmpNd;
 //特殊处理
 foreach (DataRow dr in dt.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 (DataRow row in rows)
 {
   tmpNd = new TreeNode();
   //给根节点赋值
   tmpNd.Value = row["CUSTOMERID"].ToString();
   tmpNd.Text = row["CUSTOMERSHORT"].ToString();
   tmpNd.Expanded = true;
   //将节点加入到树中
   TreeView1.Nodes.Add(tmpNd);
   AddTree(dt, TreeView1, tmpNd, row["CUSTOMERID"].ToString());
 }
}
public void AddTree(DataTable dt, TreeView tv, TreeNode pNode, string CUSTOMERID)
{
 DataRow[] rows = dt.Select("PARENTID='" + CUSTOMERID + "'");
 TreeNode tmpNd;
 foreach (DataRow row in rows)
 {
   tmpNd = new TreeNode();
   //给根节点赋值
   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#程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com