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#程序设计有所帮助。


猜你喜欢
- 首先去官网下载 一个压缩包 网址: 这里是 1.2.17的版本 下载之后解压就可以了下面就从eclipse中添加
- 这篇文章主要介绍了Spring Bean初始化及销毁多种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- HttpClient是一个客户端的HTTP通信实现库。HttpClient的目标是发送和接收HTTP报文。Http协议的重要性相信不用我多说
- 背景在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条。但同时对查询速度的要求也比较高。这个数据库之前在没有使用P
- MyBatis插入Insert、InsertSelective的区别逆向自动生成的mybatis对应配置Mapper文件里面,有两个方法,分
- JDBC Statement对象实例以下是利用以下三种查询以及打开和关闭说明的例子:boolean execute(String SQL)
- 编辑Word文档时,我们有时会突然想增加一段新内容;而将word文档给他人浏览时,有些信息我们是不想让他人看到的。那么如何运用C#编程的方式
- 前段时间接到一个Web应用自动生成Word的需求,现整理了下一些关键步骤拿来分享一下。思路:(注:这里只针对WORD2003版本,其它版本大
- 翻译自 John Demetriou 2019年2月17日 的文章 《C# 8 – Introducing Index Struct And
- 介绍Mybatis Generator(MBG)是Mybatis的一个代码生成工具。MBG解决了对数据库操作有最大影响的一些CRUD操作,很
- VS2010+Opencv+MFC读取图像和视频显示在Picture控件,供大家参考,具体内容如下1.新建MFC对话框应用程序。其余选项默认
- android原生的Spinner提供了下拉列表选项框,但在一些流行的APP中,原生的Spinner似乎不太受待见,而通常会有下图所示的下拉
- 测试代码pom.xml:<?xml version="1.0" encoding="UTF-8"
- 在移动支付领域,支付宝支付占用巨大份额,根据艾瑞咨询公布的报告数据:2014Q3,支付宝斩
- 推荐第三种方式,简单快捷不卡。第一种:jjdxm_updateGitHub地址:jjdxmashl/jjdxm_update效果图:点击立即
- 本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下:一、this指针是什么:这里有一些面向对象编程
- 在application.properties中配置了static的默认路径我的static目录结构是这样的index.html中这样引用c
- 本文实例为大家分享了RecylerView实现流布局的具体代码,供大家参考,具体内容如下第一步:添加依赖compile 'com.a
- 需求:用TreeSet集合存储多个学生信息(姓名,语文成绩,数学成绩),并遍历该集合;要按照总分从高到低进行排序分析:1.创建学生类 成员变
- Java8 移除两个相同List对象List<Data> data1 = new ArrayList<>(