Asp.net 1.1 Treeview 控件的一个简单的数据绑定,Asp.net1.1自身没有Treeview控件,可以从网上download安装即可,树形控件绑定的一个重要的思想就是递归的思想,所以在绑定的时候就要使用递归的方法,考录到性能问题,通常是将数据一次性load到一个容器中如:缓存,然后根据条件在缓存中将数据绑定到树形控件上,下面是个简单的例子

后台代码:

  1Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System;
  2Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Collections;
  3Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.ComponentModel;
  4Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Data;
  5Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Drawing;
  6Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Web;
  7Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Web.SessionState;
  8Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Web.UI;
  9Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Web.UI.WebControls;
 10Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Web.UI.HtmlControls;
 11Asp.net 1.1 Treeview 控件的绑定_C#语言基础using System.Data.SqlClient;
 12Asp.net 1.1 Treeview 控件的绑定_C#语言基础using Microsoft.Web.UI.WebControls;
 13Asp.net 1.1 Treeview 控件的绑定_C#语言基础namespace TreeTest
 14Asp.net 1.1 Treeview 控件的绑定_sql_14Asp.net 1.1 Treeview 控件的绑定_ASP.NET_15Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 15Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18    /**//// <summary>
 16Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19    /// WebForm1 的摘要说明。
 17Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20    /// </summary>

 18Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19    public class WebForm1 : System.Web.UI.Page
 19Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18    Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 20Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        protected Microsoft.Web.UI.WebControls.TreeView Tree2;
 21Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19    
 22Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        private void Page_Load(object sender, System.EventArgs e)
 23Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 24Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            if(!IsPostBack)
 25Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 26Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                InitTree();
 27Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }

 28Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

 29Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
 30Asp.net 1.1 Treeview 控件的绑定_TreeView_18Asp.net 1.1 Treeview 控件的绑定_TreeView_17        Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
 31Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        override protected void OnInit(EventArgs e)
 32Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 33Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            //
 34Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
 35Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            //
 36Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            InitializeComponent();
 37Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            base.OnInit(e);
 38Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

 39Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        
 40Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        /**//// <summary>
 41Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
 42Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        /// 此方法的内容。
 43Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        /// </summary>

 44Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        private void InitializeComponent()
 45Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{    
 46Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            this.Load += new System.EventHandler(this.Page_Load);
 47Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
 48Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

 49Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        #endregion

 50Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
 51Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        
 52Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        private void InitTree()
 53Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 54Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            try
 55Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{            
 56Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                TreeNode node=new TreeNode();
 57Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                node.Text="根节点";
 58Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                node.ID="-1";    
 59Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                string sqlString="Select * From Tree Where ParentID=0";
 60Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                Tree2.Nodes.Add(node);    
 61Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                SqlDataReader rd=GetDataReader(sqlString);
 62Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                while(rd.Read())
 63Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18                Asp.net 1.1 Treeview 控件的绑定_TreeView_16{    
 64Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    string pId=rd["ID"].ToString();
 65Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    TreeNode node1=new TreeNode();
 66Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node1.Text=rd.GetString(1);
 67Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node1.ID=rd["ID"].ToString();                            
 68Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node.Nodes.Add(node1);    
 69Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    MakeTree(node1,pId);                    
 70Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20                }
            
 71Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }

 72Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            catch(Exception err)Asp.net 1.1 Treeview 控件的绑定_TreeView_16{Console.WriteLine(err.Message);}
 73Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            finallyAsp.net 1.1 Treeview 控件的绑定_TreeView_16{}
 74Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

 75Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
 76Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        private void MakeTree(TreeNode fnode,string pId)
 77Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 78Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            try
 79Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 80Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                TreeNode node;        
 81Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                string sqlString="Select ID,Name,ParentID From Tree Where ParentID="+pId;
 82Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                SqlDataReader rd=GetDataReader(sqlString);
 83Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                while(rd.Read())
 84Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18                Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 85Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    string PID=rd["ID"].ToString();            
 86Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node=new TreeNode();
 87Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node.Text=rd["Name"].ToString();
 88Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    node.ID=rd["ID"].ToString();                            
 89Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    fnode.Nodes.Add(node);    
 90Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                    MakeTree(node,PID);        //递归                    
 91Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20                }

 92Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                rd.Close();                        
 93Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }

 94Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            catch(Exception err)
 95Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
 96Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                Console.WriteLine(err.Message);
 97Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }

 98Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            finallyAsp.net 1.1 Treeview 控件的绑定_TreeView_16{}            
 99Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

100Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
101Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19        private SqlDataReader GetDataReader(string sqlString)
102Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18        Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
103Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            try
104Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{            
105Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                string conString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
106Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                SqlConnection conn=new SqlConnection(conString);
107Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                SqlCommand cmd=new SqlCommand(sqlString);                        
108Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                conn.Open();
109Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                cmd.Connection=conn;
110Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                return    cmd.ExecuteReader();                
111Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }

112Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            catch (System.Exception e)
113Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{
114Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19                return null;
115Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20            }
    
116Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19            finally
117Asp.net 1.1 Treeview 控件的绑定_TreeView_17Asp.net 1.1 Treeview 控件的绑定_TreeView_18            Asp.net 1.1 Treeview 控件的绑定_TreeView_16{    }
118Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20        }

119Asp.net 1.1 Treeview 控件的绑定_ASP.NET_19
120Asp.net 1.1 Treeview 控件的绑定_ASP.NET_20    }

121Asp.net 1.1 Treeview 控件的绑定_ASP.NET_164}

122Asp.net 1.1 Treeview 控件的绑定_C#语言基础
前台文件:
 1Asp.net 1.1 Treeview 控件的绑定_sql_14Asp.net 1.1 Treeview 控件的绑定_ASP.NET_15<%Asp.net 1.1 Treeview 控件的绑定_TreeView_16@ Register TagPrefix="iewc1" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
 2Asp.net 1.1 Treeview 控件的绑定_sql_14Asp.net 1.1 Treeview 控件的绑定_ASP.NET_15<%Asp.net 1.1 Treeview 控件的绑定_TreeView_16@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TreeTest.WebForm1" %>
 3Asp.net 1.1 Treeview 控件的绑定_C#语言基础<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 4Asp.net 1.1 Treeview 控件的绑定_C#语言基础<HTML>
 5Asp.net 1.1 Treeview 控件的绑定_C#语言基础    <HEAD>
 6Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <title>WebForm1</title>
 7Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
 8Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <meta name="CODE_LANGUAGE" Content="C#">
 9Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <meta name="vs_defaultClientScript" content="JavaScript">
10Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
11Asp.net 1.1 Treeview 控件的绑定_C#语言基础    </HEAD>
12Asp.net 1.1 Treeview 控件的绑定_C#语言基础    <body MS_POSITIONING="GridLayout">
13Asp.net 1.1 Treeview 控件的绑定_C#语言基础        <form id="Form1" method="post" runat="server">
14Asp.net 1.1 Treeview 控件的绑定_C#语言基础            <FONT face="宋体">
15Asp.net 1.1 Treeview 控件的绑定_C#语言基础                <iewc1:TreeView id="Tree2" style="Z-INDEX: 101; LEFT: 104px; POSITION: absolute; TOP: 160px" runat="server"></iewc1:TreeView></FONT>
16Asp.net 1.1 Treeview 控件的绑定_C#语言基础        </form>
17Asp.net 1.1 Treeview 控件的绑定_C#语言基础    </body>
18Asp.net 1.1 Treeview 控件的绑定_C#语言基础</HTML>
数据结构:
 1Asp.net 1.1 Treeview 控件的绑定_C#语言基础if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Tree]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
 2Asp.net 1.1 Treeview 控件的绑定_C#语言基础drop table [dbo].[Tree]
 3Asp.net 1.1 Treeview 控件的绑定_C#语言基础GO
 4Asp.net 1.1 Treeview 控件的绑定_C#语言基础
 5Asp.net 1.1 Treeview 控件的绑定_C#语言基础CREATE TABLE [dbo].[Tree] (
 6Asp.net 1.1 Treeview 控件的绑定_C#语言基础    [ID] [int] IDENTITY (11NOT NULL ,
 7Asp.net 1.1 Treeview 控件的绑定_C#语言基础    [Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 8Asp.net 1.1 Treeview 控件的绑定_C#语言基础    [ParentID] [int] NOT NULL 
 9Asp.net 1.1 Treeview 控件的绑定_C#语言基础ON [PRIMARY]
10Asp.net 1.1 Treeview 控件的绑定_C#语言基础GO
11