递归绑定TreeView

简介:

  树形菜单在平常的开发中是最常见的了,自已也练习练习,先来看两个图:

                  

     效果图                         表结构

 

实现代码:

   private void Form1_Load(object sender, EventArgs e)
        {
            this.BindTree(0);
        }


        private DataSet GetData(int pid)
        {
            string strCon = @"Data Source=Agony\SQLSERVER2005;Initial Catalog=sports;Integrated Security=True";
            string sql = "SELECT * FROM sport WHERE pid=" + pid;
            SqlConnection conn = new SqlConnection(strCon);
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            da.Fill(ds, "sport");
            return ds;
        }

        //绑定父节点
        private void BindTree(int pid)
        {
            DataSet ds = GetData(pid);
            if (ds.Tables["sport"].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables["sport"].Rows.Count; i++)
                {
                    TreeNode node = new TreeNode();
                    node.Text = ds.Tables["sport"].Rows[i]["sname"].ToString();
                    node.Tag = ds.Tables["sport"].Rows[i]["id"].ToString();

                    this.treeView1.Nodes.Add(node);
                    BindChildNode(node);
                }
            }
        }

        //绑定子节点
        private void BindChildNode(TreeNode node)
        {
            TreeNode tn = node;
            int id = Convert.ToInt32(tn.Tag);
            DataSet ds = GetData(id);
            for (int i = 0; i < ds.Tables["sport"].Rows.Count; i++)
            {
                TreeNode nod = new TreeNode();
                nod.Text = ds.Tables["sport"].Rows[i]["sname"].ToString();
                nod.Tag = ds.Tables["sport"].Rows[i]["id"].ToString();


                tn.Nodes.Add(nod);
                BindChildNode(nod);
            }
        }

 

本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/archive/2012/03/15/1776370.html ,如需转载请自行联系原作者。



目录
相关文章
|
3月前
Element UI 树形控件Tree 【详解】el-tree 展开指定节点,判断是否存在指定节点
Element UI 树形控件Tree 【详解】el-tree 展开指定节点,判断是否存在指定节点
529 0
|
5月前
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
585 2
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
|
数据可视化 JavaScript
element-plus 树形控件用法
element-plus 树形控件是一种常用的可视化组件,可以展示树型结构的数据。以下是 element-plus 树形控件的用法。
509 0
|
JavaScript
VUE element-ui之el-tree树形控件循环遍历渲染dom节点;子节点横向排列;控件添加指示线
VUE element-ui之el-tree树形控件循环遍历渲染dom节点;子节点横向排列;控件添加指示线
902 0
VUE element-ui之el-tree树形控件循环遍历渲染dom节点;子节点横向排列;控件添加指示线
|
C#
WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法
1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the selected TreeViewItem.
1147 0
|
存储
Element UI Tree 树形控件根据层级全选控制
使用场景: • 多级分类 • 组织架构多级管理 • 知识或者文件夹层级组织方式 • 事物的归属关系
554 0
Element UI Tree 树形控件根据层级全选控制
|
C#
WPF—TreeView无限极绑定集合形成树结构
原文:WPF—TreeView无限极绑定集合形成树结构 1.如图所示:绑定树效果图   2.前台Xaml代码:                                                                                          ...
1268 0
|
C#
【C#】wpf查找父子节点
原文:【C#】wpf查找父子节点 using System; using System.Collections.Generic; using System.
859 0