对c#中treeView的理解应用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Data;

namespace WebApplication5
{
    
    public partial class index : System.Web.UI.Page
    {
        DBHelper dbHelper = new DBHelper();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack) {
                SetupTree();
            }
        }

        protected void SetupTree() {
           SqlConnection conn = dbHelper.getConn();
<span style="white-space:pre">		</span>//<span style="color:#ff0000;">sql语句查到根目录的数据记录,并作为根节点</span>
            string strconn = "select * from tbTree tb1 where not exists(select 1 from tbTree tb2 where tb1.ParentID = tb2.ID); ";

            SqlDataReader rd = dbHelper.search(strconn);

            while (rd.Read()) {
                TreeNode root = new TreeNode();
                root.Text = rd["Context"].ToString();
<span style="white-space:pre">		</span>//<span style="color:#ff0000;">传入value,方便点击等事件时获取当前点击的数据,进行其他操作</span>
                root.Value = rd["ID"].ToString();
                this.TreeView1.Nodes.Add(root);
                ProcessChildNode(root, conn);
            }
            dbHelper.closeSqlDataReader(rd);
            dbHelper.closeConn(conn);
            
            //延迟加载
            //root.PopulateOnDemand = true;
            //root.Expanded = false;

        }
<span style="white-space:pre">	</span>//<span style="color:#ff0000;">遍历数据,只要该节点存在子节点的继续遍历</span>
        protected void ProcessChildNode(TreeNode parent,SqlConnection conn) 
        {
            string strconn = "select * from tbTree tb1 where ParentID = "+parent.Value+"";

            SqlDataReader rd = dbHelper.search(strconn);

            while (rd.Read()) {
                TreeNode child = new TreeNode();
                child.Text = rd["Context"].ToString();
                child.Value = rd["ID"].ToString();
                parent.ChildNodes.Add(child);
                ProcessChildNode(child, conn);
            }
        }
<span style="white-space:pre">	</span>//<span style="color:#ff0000;">获取当前点击选择的节点所对应的数据</span>
        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
           TreeNode node = this.TreeView1.SelectedNode;
           this.Label1.Text = node.Text;
        }

        //动态加载事件处理
        protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
        {
            
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值