chyel-love'net

本人今年大四,即将毕业,准备从事dotnet程序开发业,
擅长b/s开发,熟悉三层结构,希望有愿意收留本人者,请与我联系。QQ:109267323
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

TreeView简单使用

Posted on 2005-09-03 12:15  chyel-love  阅读(749)  评论(0编辑  收藏  举报
学了这么久的.NET了,还没有用过TREEVIEW控件,今天就下了IEWEBCONTROL学了学怎么用TREEVIEW,
写了个简单的二级树.
create table tree
(
    id 
int identity(1,1primary key,
    childID 
int default 0,--这里定义时写错了,应该用parentID
    title varchar(50not null,
    url 
varchar(100)
)
insert into tree (childID,title,url) values (2,'节点1','http://www.163.com')
insert into tree (childID,title,url) values (0,'节点2','http://www.163.com')
insert into tree (childID,title,url) values (2,'节点3','http://www.163.com')
insert into tree (childID,title,url) values (9,'节点4','http://www.163.com')
insert into tree (childID,title,url) values (2,'节点5','http://www.163.com')
insert into tree (childID,title,url) values (2,'节点6','http://www.163.com')
insert into tree (childID,title,url) values (9,'节点7','http://www.163.com')
insert into tree (childID,title,url) values (9,'节点8','http://www.163.com')
insert into tree (childID,title,url) values (0,'节点9','http://www.163.com')
下面是ASP.CS文件
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Microsoft.Web.UI.WebControls;

namespace xmlDemo
{
    
/// <summary>
    
/// treeDemo 的摘要说明。
    
/// </summary>

    public class treeDemo : System.Web.UI.Page
    
{
        
protected Microsoft.Web.UI.WebControls.TreeView Tree;
        
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
            BindTree();
        }

        DataTable GetTable( 
string sql)
        
{
            SqlConnection conn
=new SqlConnection("server=.;database=tree;uid=sa;pwd=;");
            SqlDataAdapter da
=new SqlDataAdapter(sql,conn);
            DataSet ds
=new DataSet();
            da.Fill(ds);
            
return ds.Tables[0];
        }

        
void BindTree()
        
{
            
this.Tree.Nodes.Clear();
            TreeNode tn
=new TreeNode();
            tn.Text
="终极接点";
            tn.Expanded
=true;
            Tree.Nodes.Add(tn);
            DataTable dt
=GetTable("select * from tree where childID=0");//一级根结点
            foreach(DataRow dr in dt.Rows)
            
{
                TreeNode cld
=CreateNode(dr["title"].ToString(),dr["Url"].ToString(),tn);
                DataTable dt1
=GetTable("select * from tree where childID="+dr[0].ToString());//一级子结点
                if(dt1.Rows.Count>0)
                
{
                    
foreach(DataRow dr1 in dt1.Rows)
                    
{
                        CreateNode(dr1[
"title"].ToString(),dr1["Url"].ToString(),cld);
                    }

                }

            }

        }

        TreeNode CreateNode(
string nodeText,string Url,TreeNode tn)
        
{
            TreeNode cld
=new TreeNode();
            cld.Text
=nodeText;
            cld.NavigateUrl
=Url;
            cld.Target
="_blank";
            tn.Nodes.Add(cld);
            
return cld;
        }

        
#region Web 窗体设计器生成的代码
        
override protected void OnInit(EventArgs e)
        
{
            
//
            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            
//
            InitializeComponent();
            
base.OnInit(e);
        }

        
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>

        private void InitializeComponent()
        
{    
            
this.Load += new System.EventHandler(this.Page_Load);

        }

        
#endregion

    }

}