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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot 配合 SpringSecurity 实现自动登录功能的代码
2023-07-22 04:58:22
![](https://img.aspxhome.com/file/2023/6/57626_0s.png)
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
![](https://img.aspxhome.com/file/2023/5/113875_0s.png)
Spring中XML schema扩展机制的深入讲解
2022-06-29 07:44:15
![](https://img.aspxhome.com/file/2023/4/77384_0s.png)
Android自定义ActionProvider ToolBar实现Menu小红点
2022-09-09 05:07:30
![](https://img.aspxhome.com/file/2023/9/98649_0s.gif)
关于maven全局配置文件settings.xml解析
2023-01-08 09:04:04
![](https://img.aspxhome.com/file/2023/3/66233_0s.jpg)
Android如何创建可拖动的图片控件
2022-11-25 04:02:00
![](https://img.aspxhome.com/file/2023/6/138486_0s.jpg)
Java语言实现二叉堆的打印代码分享
2021-11-27 23:00:15
![](https://img.aspxhome.com/file/2023/8/64008_0s.jpg)
浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题
2022-03-16 06:35:41
Jenkins使用Gradle编译Android项目详解
2021-12-30 22:26:30
![](https://img.aspxhome.com/file/2023/9/83059_0s.png)
Java如何实现压缩文件与解压缩zip文件
2022-01-28 09:14:00
![](https://img.aspxhome.com/file/2023/6/67496_0s.png)
java基础之泛型知识点总结
2021-09-03 21:30:29
Android视频悬浮窗口实现的示例代码
2022-08-01 06:50:33
![](https://img.aspxhome.com/file/2023/6/138386_0s.gif)
Android获取经纬度计算距离介绍
2022-04-30 20:00:04
Eclipse自定义启动画面和图标的方法介绍
2022-05-14 09:27:13
IDEA2022.2的简介、下载与安装、配置教程
2023-01-13 21:21:03
![](https://img.aspxhome.com/file/2023/4/85914_0s.jpg)
利用Kotlin Tools如何快速添加Kotlin依赖详解
2021-06-24 05:43:52
![](https://img.aspxhome.com/file/2023/2/106822_0s.png)
解决AMD无法使用Android studio问题
2022-04-13 00:17:32
![](https://img.aspxhome.com/file/2023/6/138736_0s.png)