推荐微软发布的treeview的web控件,在asp.net网站上有。

解决方案 »

  1.   

    treeview递归实现:有点乱,你拷贝到vs.net里看吧,希望对你有所帮助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 Microsoft.Web.UI.WebControls;
    using System.Data.SqlClient;
    namespace TreeCS
    {
    /// 
    /// WebForm1 的摘要说明
    /// 
    public class WebForm1 : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.TreeView TreeView2;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 定义数据库连接
    SqlConnection CN = new SqlConnection();
    try 
    {
    //初始化连接字符串
    CN.ConnectionString=
    "data source=zhangce;initial catalog=tree;persist security info=False;user id=sa;Password=;";
    CN.Open(); SqlDataAdapter adp = new SqlDataAdapter("select * from tbTree",CN);
    DataSet ds=new DataSet();
    adp.Fill(ds);
    this.ViewState["ds"]=ds; 
    }
    catch (Exception ex)
    {
    Session["Error"] = ex.ToString();
    Response.Redirect("error.aspx");       //̀跳转程序的公共错误处理页面
    }
    finally 
    {
    CN.Close();
    }
    //调用递归函数,完成树形结构的生成
    AddTree(0, (TreeNode)null);
    } //递归添加树的节点
    public void AddTree(int ParentID,TreeNode pNode) 
    {
    DataSet ds=(DataSet) this.ViewState["ds"]; 
    DataView dvTree = new DataView(ds.Tables[0]);
    //过滤ParentID,得到当前的所有子节点
    dvTree.RowFilter =  "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) 
    {
    TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {    //添加根节点
    Node.Text = Row["ConText"].ToString();
    TreeView2.Nodes.Add(Node);
    Node.Expanded=false;
    AddTree(Int32.Parse(Row["ID"].ToString()), Node);    //再次递归

    else 
    {   //̀添加当前节点的子节点
    Node.Text = Row["ConText"].ToString();
    pNode.Nodes.Add(Node);
    Node.Expanded = false;
    AddTree(Int32.Parse(Row["ID"].ToString()),Node);     //再次递归
    }
    }                   
    }             #region Web Form Designer generated code
    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
    }
    }