zoukankan      html  css  js  c++  java
  • TreeView控件树Demo 用DataTable绑定到TreeView

    前台:

    <form id="Form1" runat="server">
      <asp:TreeView ID="TreeView1" runat="server">
      </asp:TreeView>
    </form>

    后台:

    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 TreeViewDemo
    {
    	public partial class _Default : System.Web.UI.Page
    	{
    		protected void Page_Load(object sender, EventArgs e)
    		{
    			if (!IsPostBack)
    			{
    				iniTree();
    			}
    		}
    
    		private DataTable CreateData()
    		{
    			DataTable dt = new DataTable();
    			dt.Columns.Add(new DataColumn("cName"));
    			dt.Columns.Add(new DataColumn("cID"));
    			dt.Columns.Add(new DataColumn("cPID"));
    
    			for (int i = 0; i < 10; i++)
    			{
    				DataRow dr = dt.NewRow();
    				dr["cName"] = "父节点" + i.ToString();
    				dr["cID"] = i.ToString();
    				dr["cPID"] = "";
    				dt.Rows.Add(dr);
    
    				for (int j = 0; j < 3; j++)
    				{
    					DataRow dr_sub = dt.NewRow();
    					dr_sub["cName"] = "子节点" + j.ToString();
    					dr_sub["cID"] = i.ToString() + "_" + j.ToString();
    					dr_sub["cPID"] = i.ToString();
    					dt.Rows.Add(dr_sub);
    				}
    			}
    
    			return dt;
    		}
    
    		private void iniTree()
    		{
    			TreeView1.Nodes.Clear();
    
    			DataTable dt = CreateData();
    			TreeView1.Nodes.Add(new TreeNode("根节点", ""));
    			bindTree(dt, "", TreeView1.Nodes[0]);
    
    			TreeView1.ImageSet = TreeViewImageSet.Arrows;
    		}
    
    		private void bindTree(DataTable dt, string pid, TreeNode ParentNode)
    		{
    			DataRow[] Rows = GetData(dt, pid);
    			if (Rows.Length == 0) { return; }
    
    			foreach (DataRow r in Rows)
    			{
    				TreeNode node = new TreeNode(r["cName"].ToString(),r["cID"].ToString());
    
    				ParentNode.ChildNodes.Add(node);
    
    				bindTree(dt, r["cID"].ToString(), node);
    			}
    		}
    
    		private DataRow[] GetData(DataTable dt, string pid)
    		{
    			IEnumerable<DataRow> query = from r in dt.AsEnumerable()
    						where r.Field<string>("cPID") == pid
    						select r;
    			return query.ToArray<DataRow>();
    		}
    	}
    }
    

      

  • 相关阅读:
    leetcode——91.解码方法
    leetcode——64.最小路径和
    Layui上传图片2.0版
    LINQ中判断日期时间段
    Http基础
    Js中数组,字符串的常用方法
    C#数组,ArrayList,List区别
    08-01 通过线性回归了解算法流程
    08-00 课程习得
    C-02 推荐系统
  • 原文地址:https://www.cnblogs.com/sungcong/p/2845223.html
Copyright © 2011-2022 走看看