TreeView绑定
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
List<NodeInfo> nodeInfoList = new List<NodeInfo>(); public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
Init();
LoadData(new NodeInfo(Guid.Empty, "", Guid.Empty),null);
} public void Init()
{
NodeInfo info1 = new NodeInfo(Guid.NewGuid(),"Node1",Guid.Empty);
NodeInfo info11 = new NodeInfo(Guid.NewGuid(), "Node11", info1.ID);
NodeInfo info111 = new NodeInfo(Guid.NewGuid(), "Node111", info11.ID); NodeInfo info2 = new NodeInfo(Guid.NewGuid(), "Node2", Guid.Empty);
NodeInfo info21 = new NodeInfo(Guid.NewGuid(), "Node21", info2.ID);
NodeInfo info22 = new NodeInfo(Guid.NewGuid(), "Node22", info2.ID); NodeInfo info3 = new NodeInfo(Guid.NewGuid(), "Node3", Guid.Empty);
NodeInfo info31 = new NodeInfo(Guid.NewGuid(), "Node31", info3.ID);
NodeInfo info311 = new NodeInfo(Guid.NewGuid(), "Node311", info31.ID); nodeInfoList.Add(info1);
nodeInfoList.Add(info11);
nodeInfoList.Add(info111);
nodeInfoList.Add(info2);
nodeInfoList.Add(info21);
nodeInfoList.Add(info22);
nodeInfoList.Add(info3);
nodeInfoList.Add(info31);
nodeInfoList.Add(info311);
} public void LoadData(NodeInfo nodeInfo,TreeNode parentNode)
{
List<NodeInfo> list =new List<NodeInfo>();
list = GetChildrenList(nodeInfo);
if (list == null || list.Count == )
{
return;
} foreach (NodeInfo info in list)
{
if (info.ParentID == nodeInfo.ID)
{
TreeNode node = new TreeNode(info.Name);
node.Tag = info;
if (info.ParentID == Guid.Empty)
{
treeView1.Nodes.Add(node);
}
else
{
parentNode.Nodes.Add(node);
}
LoadData(info, node);
}
}
} private List<NodeInfo> GetChildrenList(NodeInfo nodeInfo)
{
List<NodeInfo> list = new List<NodeInfo>();
list = nodeInfoList.FindAll(o => o.ParentID == nodeInfo.ID);
return list;
}
} public class NodeInfo
{
public Guid ID { get; set; }
public string Name { get; set; }
public Guid ParentID { get; set; } public NodeInfo(Guid id, string name, Guid parentId)
{
this.ID = id;
this.Name = name;
this.ParentID = parentId;
}
}
}
TreeView绑定的更多相关文章
- winform treeview 绑定文件夹和文件
转载:http://www.cnblogs.com/zhbsh/archive/2011/05/26/2057733.html #region treeview 绑定文件夹和文件 /// <su ...
- winform treeview绑定数据 DOM操作
form1 public void treeView() { // datatable 定义变量接收 传归来的值 DataTable Father = new BuMenDA().ConSql(); ...
- WPF TreeView绑定字典集合
<TreeView Name="Tree" HorizontalAlignment="Left" Height="269" Width ...
- WPF:TreeView绑定
namespace PostViewer { using System.Collections.ObjectModel; using System.ComponentModel; /// <su ...
- WPF TreeView绑定xaml的写法
方法一 <Window x:Class="TreeViewDemo.MainWindow" xmlns="http://schemas.microsoft.com/ ...
- C# treeview 绑定数据 【转】
private void bindTreeView1() { string sql = "select * from dm_category"; DataTable dt = db ...
- TreeView绑定无限层级关系类
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind_TV(TreeView1.Nodes); ...
- C# 中的treeview绑定数据库(递归算法)
近日面试的给我两道题目,一道是IQ测试,第二个就是题目所言 总共两个表 department(id int not null primary key,parentid int,name char(50 ...
- C# treeview绑定
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) ...
随机推荐
- FirstTry_HelloWorld
#include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { Q ...
- 接口测试框架——第二篇-python读取excel文件内容
今天完善excel_module.py文件,上代码: # coding: utf-8 import xlrd class ReadExcel(): def __init__(self, file_na ...
- [LOJ6145][2017 山东三轮集训 Day7]Easy
loj description 一棵树,每次给出\(l,r,x\),求从点\(x\)出发到达\([l,r]\)中任意一点的最短距离. sol 动态点分治. 建出点分树后,在每个节点上用以点编号为下标的 ...
- 如何理解HTTP协议的 “无连接,无状态” 特点?
HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1.支持客户/服务器模式:2.简单快速:3.灵活:4.无连接:5.无状态. 无连接 无连接的含义是限制每次连接只处理一个请求. ...
- saas 系统租户个性化域名&&租户绑定自己域名的解决方案
实际的需求就类似github 的自定义page 1. 个性化域名 github 实现原理就是用户个性化域名使用泛域名解析,这个比较简单,大部分域名提供商都可以解决 具体操作不用赘述 ...
- bzoj1503[NOI2004]郁闷的出纳员——Splay
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1503 好奇怪呀!为什么而TLE? 各种修改终于卡时过了.可是大家比我快多了呀?难道是因为自己 ...
- Python学习笔记第一讲
1.pycharm快捷键 撤销与反撤销:Ctrl + z,Ctrl + Shift + z 缩进.不缩进:Tab.Shift + tab 运行:Shift + F10 取消注释,行注释:Ctrl + ...
- laravel 中事务的使用
在laravel5.3中使用事务 可以直接使用\DB::beginTransaction();使用 前提是数据库表必须支持事务,目前mysql中表类型只有InnoDb支持事务 想要在一个数据库事务中运 ...
- 今天使用VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的"
今天使用VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的" 解决方法: 1.打开该项目的“属性页”对话框. 2.单击“ ...
- ES6中的新特性
本人最近学习es6一些方法,难免有些手痒,想着能不能将这些方法总结下,如下 1.数组的扩展 1)首先什么是伪数组 无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法 ...