现有一个表khlb(lbbh(char),lbmc(char))
表的记录如下:
lbbh       lbmc
00         根结点
01         A
02         B
0101       A1 
0201       B1
0202       B2
020101     B11
想用Treeview来怎么实现.

解决方案 »

  1.   

    以前用ASP,asp.net刚学不久,还请大家多帮助解决!
      

  2.   

    把数据放到DataTable中:
    DataTable dt=new DataTable();
    DataRow dr;
    dt.Columns.Add(new DataColumn("id",typeof(Int32)));//说明DataTable表里的包含哪些字段
      dt.Columns.Add(new DataColumn("name",typeof(string)));
      dt.Columns.Add(new DataColumn("url",typeof(string)));
    dt.Columns.Add(new DataColumn("ParentId",typeof(Int32)));

    SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["pic"]);
    conn.Open();
    string sql="Select * from tb_class order by datetime desc";
      SqlCommand Cmd=new SqlCommand(sql,conn);
      SqlDataReader reader=Cmd.ExecuteReader();
    while (reader.Read())
    {
    dr=dt.NewRow();//用DataTable的NewRow方法新建一个DataRow对象的实例dr
      dr[0]=reader["id"];//数据库中的id字段填入这一行的第一列
       dr[1]=reader["name"].ToString();//数据库中的name字段填入这一行的第二列
       dr[2]="http://www.163.com";
    dr[3]=reader["ParentId"];
       dt.Rows.Add(dr);//把这一行插入到到表格dt中
    }
    Response.Write("ok");

    this.AddNodes(dt,null,"0");   //添加节点
    //Response.End();
    this.TreeView1.SelectedNodeIndex="";   //不选中任何节点。
    reader.Close();把DataTablet进站TreeView:
    private void AddNodes(DataTable dt,TreeNode node,string ParentId) { DataRow[] rows = dt.Select("ParentId="+ParentId); //筛选出属于父节点 “node”的子节点集合
    foreach(DataRow dr in rows) //循环子节点集合
    {
    TreeNode nd =new TreeNode();
    nd.NavigateUrl=dr["url"].ToString(); //设置浏览的网址
    nd.NodeData=dr["id"].ToString(); //存放节点 ID
    nd.Text=dr["name"].ToString();   //设置节点名称

    if(node==null || ParentId=="0")
    {
    this.TreeView1.Nodes.Add(nd);    //添加至根节点
    }
    else
    {
    node.Nodes.Add(nd);              //添加子节点
    }
    this.AddNodes(dt,nd,nd.NodeData);    //递归,添加该节点的子节点
    }//foreach(DataRow dr in rows) 
    }//private void AddNodes(DataTable dt,TreeNode node,string id)
      

  3.   

    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 treeview
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label1;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    SqlConnection myConn ; 
    myConn=new SqlConnection("server=.;database=db_cqit_1;uid=sa;pwd=''"); 
    myConn.Open();
    SqlCommand Comm=new SqlCommand("select * from tbTree",myConn);
     
              
     if(!IsPostBack)
    {
    TreeView1.Nodes.Clear();
    SqlDataReader dr=Comm.ExecuteReader();  
    while(dr.Read())
    {

    if(dr["parentId"].ToString()=="") 
    {
    TreeNode newNode=new TreeNode();
    newNode.Text = dr["content"].ToString();
    newNode.ID = dr["ID"].ToString();
    TreeView1.Nodes.Add(newNode);
    InitTree(newNode.Nodes, dr["ID"].ToString());
    }
    }
    }//根接点是NULL 
    myConn.Close();
    // 在此处放置用户代码以初始化页面
    }
    private void InitTree(TreeNodeCollection Nds,string parentId)
    {    
    SqlConnection myConn ; 
    myConn=new SqlConnection("server=.;database=db_cqit_1;uid=sa;pwd=''"); 
    myConn.Open();
    SqlDataAdapter da=new SqlDataAdapter("select * from tbTree",myConn);
    DataSet ds=new DataSet();
    da.Fill(ds);
    myConn.Close();
    DataRow[] rows;
    rows=ds.Tables[0].Select("parentId='"+parentId+"'");
    TreeNode temNd;
    foreach(DataRow row in rows)
    {
    temNd=new TreeNode();
    temNd.ID=row["ID"].ToString();
    temNd.Text=row["content"].ToString();
    Nds.Add(temNd);
    InitTree(temNd.Nodes,temNd.ID);
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.TreeView1.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView1_SelectedIndexChange);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
    {
    TreeNode NewNode=TreeView1.GetNodeFromIndex(e.NewNode); 
        string strNodeId=NewNode.Text ; 
            Label1.Text=strNodeId;

    }
    }
    }
      

  4.   

    ID content parentId        isLeaf
    hg 韩国          0
    mg 美国          0
    zg 中国          0
    zg.gd 广东 zg         0
    zg.gd.fj 福建 zg.gd      0
    zg.gd.gz 广州 zg.gd      0
    zg.gd.st 珠海 zg.gd      0
    zg.gd.xg 宵旰 zg.hb      0
    zg.hb 湖北 zg         0tbTree(ID  ,content ,parentId ,isLeaf) 表结构..
    你添加一个 treeview  和一个labal 进行了  还要该下数据库连接....