zoukankan      html  css  js  c++  java
  • webform 创建树

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

    namespace WebApplication4
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            DataTable _dt = new DataTable();
            protected void Page_Load(object sender, EventArgs e)
            {
                _dt.Columns.Add("code");
                _dt.Columns.Add("parentCode");
                _dt.Columns.Add("name");

                DataRow dr=_dt.NewRow();
                dr[0]="01";
                dr[1]="0";
                dr[2]="顶层1";
                _dt.Rows.Add(dr);

                dr = _dt.NewRow();
                dr[0] = "011";
                dr[1] = "01";
                dr[2] = "子层1";
                _dt.Rows.Add(dr);

                dr = _dt.NewRow();
                dr[0] = "012";
                dr[1] = "01";
                dr[2] = "子层2";
                _dt.Rows.Add(dr);


                dr = _dt.NewRow();
                dr[0] = "02";
                dr[1] = "0";
                dr[2] = "顶层2";
                _dt.Rows.Add(dr);

                dr = _dt.NewRow();
                dr[0] = "021";
                dr[1] = "02";
                dr[2] = "子层1";
                _dt.Rows.Add(dr);

                dr = _dt.NewRow();
                dr[0] = "022";
                dr[1] = "02";
                dr[2] = "子层2";
                _dt.Rows.Add(dr);

                dr = _dt.NewRow();
                dr[0] = "0221";
                dr[1] = "022";
                dr[2] = "子子层1";
                _dt.Rows.Add(dr);

                BuildTree(null, _dt);
            }


            /// <summary>
            /// 绑定树
            /// </summary>
            /// <param name="tn"></param>
            private void BuildTree(TreeNode tn, DataTable dtDept)
            {
                int i;

                // 空节点时创建根节点,父ID为0的当作根节点
                if (tn == null)
                {
                    this.TreeView1.Nodes.Clear();
                    for (i = 0; i < dtDept.Rows.Count; i++)
                    {
                        if (dtDept.Rows[i]["parentCode"].ToString() == "0")
                        {
                            TreeNode tmp = new TreeNode(dtDept.Rows[i]["name"].ToString());
                            tmp.Value = dtDept.Rows[i]["code"].ToString();
                            tmp.ToolTip = dtDept.Rows[i]["parentCode"].ToString();
                            tmp.Checked = true;
                            TreeView1.Nodes.Add(tmp);
                        }
                    }
                    // 循环递归创建树
                    for (i = 0; i < TreeView1.Nodes.Count; i++)
                    {
                        BuildTree(TreeView1.Nodes[i],dtDept);
                    }
                }
                else // 节点非空为递归调用
                {
                    for (i = 0; i < dtDept.Rows.Count; i++)
                    {
                        if (tn.Value.ToString() == dtDept.Rows[i]["parentCode"].ToString())
                        {
                            TreeNode tmp = new TreeNode(dtDept.Rows[i]["name"].ToString());
                            tmp.Value = dtDept.Rows[i]["code"].ToString();
                            tmp.ToolTip = dtDept.Rows[i]["parentCode"].ToString();          
                            tn.ChildNodes.Add(tmp);
                        }
                    }
                    for (i = 0; i < tn.ChildNodes.Count; i++)
                    {
                        BuildTree(tn.ChildNodes[i],dtDept);
                    }
                }
            }

            protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
            {
                this.Label1.Text = TreeView1.SelectedValue;
             
                ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "updatePanel1show", "change_css('" + Label1.Text + "')", true);
                TreeView1.ExpandAll();

            }
        }
    }

  • 相关阅读:
    【LeetCode OJ】Remove Element
    【LeetCode OJ】Remove Duplicates from Sorted Array
    【LeetCode OJ】Swap Nodes in Pairs
    【LeetCode OJ】Merge Two Sorted Lists
    【LeetCode OJ】Remove Nth Node From End of List
    【LeetCode OJ】Two Sum
    【LeetCode OJ】Majority Element
    最长公共子序列问题
    php fopen与file_get_contents的区别
    PHP 技巧集合
  • 原文地址:https://www.cnblogs.com/movemoon/p/4165185.html
Copyright © 2011-2022 走看看