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

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

本文实例讲述了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#程序设计有所帮助。

标签:C#,TreeView
0
投稿

猜你喜欢

  • SpringBoot 配合 SpringSecurity 实现自动登录功能的代码

    2023-07-22 04:58:22
  • Netty分布式ByteBuf使用的回收逻辑剖析

    2023-07-18 23:26:26
  • 详解Java中Collections.sort排序

    2023-08-20 00:51:48
  • C#读取Excel到DataTable的方法示例

    2023-04-28 07:04:32
  • c# 类成员初始化顺序的特殊情况

    2021-07-04 18:04:45
  • Spring中XML schema扩展机制的深入讲解

    2022-06-29 07:44:15
  • Android自定义ActionProvider ToolBar实现Menu小红点

    2022-09-09 05:07:30
  • 关于maven全局配置文件settings.xml解析

    2023-01-08 09:04:04
  • Android如何创建可拖动的图片控件

    2022-11-25 04:02:00
  • Java语言实现二叉堆的打印代码分享

    2021-11-27 23:00:15
  • 浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题

    2022-03-16 06:35:41
  • Jenkins使用Gradle编译Android项目详解

    2021-12-30 22:26:30
  • Java如何实现压缩文件与解压缩zip文件

    2022-01-28 09:14:00
  • java基础之泛型知识点总结

    2021-09-03 21:30:29
  • Android视频悬浮窗口实现的示例代码

    2022-08-01 06:50:33
  • Android获取经纬度计算距离介绍

    2022-04-30 20:00:04
  • Eclipse自定义启动画面和图标的方法介绍

    2022-05-14 09:27:13
  • IDEA2022.2的简介、下载与安装、配置教程

    2023-01-13 21:21:03
  • 利用Kotlin Tools如何快速添加Kotlin依赖详解

    2021-06-24 05:43:52
  • 解决AMD无法使用Android studio问题

    2022-04-13 00:17:32
  • asp之家 软件编程 m.aspxhome.com