winform 递归循环阻止机构
private void GetTree()
{
DataTable dt = new DataTable();
var sql = @"
select OUID,ParentOUID,OUCode,OUName,OUShortName from tbl_Base_OUInfo where LEN(oucode) in(10,15)
order by LEN(oucode),OrderNo,ParentOUID";
dt = dataprovider.FillDataTable(sql, CommandType.Text);
var list = DatatableToHash(dt); var r = new List<Hashtable>();
Hashtable root = new Hashtable();
//集团公司
root = list.Find(p => p["OUID"].ToString() == "CCB93E1A-CC22-4120-B99F-62E941CC6E4A".ToLower());
TreeData(list, root, "CCB93E1A-CC22-4120-B99F-62E941CC6E4A".ToLower());
r.Add(root); TreeNode root1 = new TreeNode(r[0]["OUName"].ToString());
root1.Name = r[0]["OUID"].ToString(); if (r[0].ContainsKey("children"))
{
var children = r[0]["children"] as List<Hashtable>;
TreeBindData(root1, children);
} this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { root1 }); }
private void TreeBindData(TreeNode node,List<Hashtable> list)
{ for(int i = 0; i < list.Count; i++)
{
if (list[i].ContainsKey("children"))
{
var children = list[i]["children"] as List<Hashtable>;
TreeNode root1 = new TreeNode(list[i]["OUName"].ToString());
root1.Name = list[i]["OUID"].ToString();
TreeBindData(root1, children);
node.Nodes.Add(root1);
}
else {
TreeNode root1 = new TreeNode(list[i]["OUName"].ToString());
root1.Name = list[i]["OUID"].ToString();
node.Nodes.Add(root1);
}
}
}
效果:

winform 递归循环阻止机构的更多相关文章
- c# 使用递归 循环遍历导航树结构 并解析
1.数据书库结构 1 家用电器 0 一级菜单 2 手机.数码.京东通信 0 一级菜单 3 电脑.办公 0 一级菜单 4 家具.家居.厨房 0 一级菜单 5 男装.女装.童装.内衣 0 一级菜单 6 个 ...
- WinForm LED循环显示信息,使用定时器Threading.Timer
原文:WinForm LED循环显示信息,使用定时器Threading.Timer 这里用一个示例来演示timer如何使用.示例:LED屏幕显示描述:这个示例其实很简单,LED屏幕上显示3个信息: ...
- vue 树状图数据的循环 递归循环
在main.js中注册一个子组件 在父组件中引用 树状图的数据格式 绑定一个数据传入子组件,子组件props接收数据 子组件中循环调用组件,就实现了递归循环
- C# TreeView,递归循环数据加载到treeView1中
TblAreaBLL bll = new TblAreaBLL(); private void button1_Click(object sender, EventArgs e) { LoadData ...
- C# ASP.NET递归循环生成嵌套json结构树
1. 建立用来保存树结构数据的目标对象 public class TreeObject { public string name { get; set; } public string value { ...
- 【剑指offer】递归循环两种方式反转链表
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25737023 本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上AC. 题目描写 ...
- 递归循环JSON
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...
- C# winform 递归选中TreeView子节点
/// <summary> /// 递归选中所有的自节点 /// </summary> /// <param name="nodeThis">T ...
- python实现满二叉树递归循环
一.二叉树介绍点这片文章 二叉树及题目介绍 例题: 有一颗满二叉树,每个节点是一个开关,初始全是关闭的,小球从顶点落下, 小球每次经过开关就会把它的状态置反,这个开关为关时,小球左跑,为开时右跑.现在 ...
随机推荐
- 定制ADempiere(1)- 会议记录
本文是<ADempiere 3.6 Cookbook>一书的实例笔记,详细内容请查阅该书完整内容. 1. 登录pgAdmin III,创建表c_mom: CREATE TABLE adem ...
- windows下安装redis及其客户端
首先下载redis安装包:https://github.com/MSOpenTech/redis/releases 解压安装包到相应文件夹,任何盘符都行. 文件介绍:redis-server.exe: ...
- ubuntu建立软ap共享无线网络
建立ad-hoc模式共享网络 viewtopic.php?f=116&t=387194 有些android手机可能不支持ad-hoc模式,要第三方rom才行. 首先安装这些工具 代码: apt ...
- ArcGis10.0常见错误
1. 问题: Arcgis10.0 组件初始化失败 解决方法: ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Eng ...
- Qt 检验器 三种典型类的用法
Qt提供了三个内置验证器类: QDoubleValidator, QIntValidator, QRegExpValidator. QDoubleValidator类: 提供了对浮点数的范围检查. Q ...
- atitit.获取connection hibernate4
atitit.获取connection hibernate4 1. SessionFactoryUtils法(推荐) 1 2. ConnectionProvider 法( ) 1 3. 嘎自实现法(不 ...
- docker使用问题总结
1. docker报[Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run fai ...
- location ^~ /images/
} location ^~ /images/ { root /static/; } #当匹配到/images/ 开头的uri 会把网站定位到/static/下,并且不在向下继续匹配!!! 注意: ^~ ...
- javascript的单线程
1.什么是javascript的单线程javascript是单线程的语言,所以在一个进程上,只能运行一个县城,不能多个线程同时运行.也就是说javascript不允许多个线程共享内存空间.如果多个线程 ...
- pyspark采用python3开发
现在时间2017-04-17. python版本3.5支持pyspark python3.6目前还不支持 做法简单,只需要在bin/pyspark中增加 export PYSPARK_PYTHON=p ...