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实现满二叉树递归循环
一.二叉树介绍点这片文章 二叉树及题目介绍 例题: 有一颗满二叉树,每个节点是一个开关,初始全是关闭的,小球从顶点落下, 小球每次经过开关就会把它的状态置反,这个开关为关时,小球左跑,为开时右跑.现在 ...
随机推荐
- 携程实时大数据平台演进:1/3 Storm应用已迁到JStorm
携程大数据平台负责人张翼分享携程的实时大数据平台的迭代,按照时间线介绍采用的技术以及踩过的坑.携程最初基于稳定和成熟度选择了Storm+Kafka,解决了数据共享.资源控制.监控告警.依赖管理等问题之 ...
- 【centos6.5】安装LAMP
转载至:linux公社 https://www.linuxidc.com/Linux/2014-07/104563.htm
- OpenCV iOS开发(一)——安装(转)
OpenCV是一个开源跨平台的的计算机视觉和机器学习库,可以用来做图片视频的处理.图形识别.机器学习等应用.本文将介绍OpenCV iOS开发中的Hello World起步. 安装 OpenCV安装的 ...
- .NET资料之-根据两点经纬度计算直线距离
最近做东西碰到要根据两点经纬度计算之间的直线距离,就网上找了查了下资料.因为这类接触的比较少,就直接找现成的代码了,没怎么研究.代码如下,作为记录. private const double EART ...
- C#:复选框操作类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- IO多路复用之epoll
1.基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本.相对于select和poll来说,epoll更加灵活,没有描述符限制.epoll使用一个文件描述符管理多个描述 ...
- 数据库中varchar类型数据转换为numeric类型
numeric有好几种选择,有整形.小数型等等.都是用cast来实现 前提:A表的ID字段是VARCHAR类型 .SELECT CAST(ID AS INTEGER) FROM A .SELECT C ...
- Python操作列表常用方法
Python操作列表的常用方法. 列表常用的方法操作列表以及小例子: 1. Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 &g ...
- 通过CLR API实现C++调用C#代码交互
对于某些跨平台程序,这也就意味着只能在windows下使用了 不过最近.Net开源或许以后可以跨平台 之前花了一些时间研究COM方式调用,太繁琐不推荐. COM方式调用总结 后来尝试使用CLR C++ ...
- MySQL是如何做到安全登陆
首先Mysql的密码权限存储在mysql.user表中.我们不关注鉴权的部分,我们只关心身份认证,识别身份,后面的权限控制是很简单的事情.在mysql.user表中有个authentication_s ...