请教TreeView怎么展开二、三层?大虾请进来谢谢
运行了以下语句只展开了一层,请高手帮我看一下:public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TreeViewBind();
        }
    }
    private DataSet bandshen(string sql)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["office"].ConnectionString);
       
 
            con.Open();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
            con.Close();       
    }
    private void TreeViewBind()
    {
        string strSql = "select fid from a ";
        using (DataSet ds = bandshen(strSql))
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                TreeNode myNode = new TreeNode();
                myNode.Text = ds.Tables[0].Rows[i]["fid"].ToString();               
                this.TreeView1.Nodes.Add(myNode);                
                string str = "select fname from b  where fid='" + myNode.Text + "'  ";   ///这里第二、三层要怎样才可以展开??谢谢             
                using (DataSet dsVideo =bandshen(str))
                {
                    for (int j = 0; j < dsVideo.Tables[0].Rows.Count; j++)
                    {
                        TreeNode myChild = new TreeNode();                        
                        myChild.Text = dsVideo.Tables[0].Rows[j]["fname"].ToString();
                        myNode.ChildNodes.Add(myChild);
                    }
                }
            }        }
    } }
SQL表如下:CREATE TABLE [dbo].[a] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOinsert into a (fid)
values('广东')
insert into a (fid)
values('天津')CREATE TABLE [dbo].[b] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOinsert into b (fid,fname)
values('广东','佛山') 
CREATE TABLE [dbo].[c] (
[fid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[fname] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOinsert into c (fid,fname)
values('佛山','三水')
insert into c (fid,fname)
values('佛山','火炭') 
insert into c (fid,fname)
values('天津','斗门') 效果如下:|      
|      
广东----佛山
|        |
|        |-- 三水
|        |            
|         ----火炭
|
|
|
天津----斗门
|        
|        

解决方案 »

  1.   

    private void TreeViewBind() 
        { 
            string strSql = "select fid from a "; 
            using (DataSet ds = bandshen(strSql)) 
            { 
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
                { 
                    TreeNode myNode = new TreeNode(); 
                    myNode.Text = ds.Tables[0].Rows[i]["fid"].ToString();              
                                    
                    string str = "select fname from b  where fid='" + myNode.Text + "'  ";  ///这里第二、三层要怎样才可以展开??谢谢            
                    using (DataSet dsVideo =bandshen(str)) 
                    { 
                        for (int j = 0; j < dsVideo.Tables[0].Rows.Count; j++) 
                        { 
                            TreeNode myChild = new TreeNode();                        
                            myChild.Text = dsVideo.Tables[0].Rows[j]["fname"].ToString(); 
                            myNode.ChildNodes.Add(myChild); 
                        } 
                    } 
                     this.TreeView1.Nodes.Add(myNode); //放到后面来执行
                     myNode.Expand(); //调用展开结节            } 
            } 
      

  2.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetData();
                BuildTree();
            }
        }
        private DataSet bandshen(string sql)
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["office"].ConnectionString);
            //con.ConnectionTimeout = 60;
            try
            {
                con.Open();
                SqlDataAdapter sda = new SqlDataAdapter(sql, con);
                DataSet ds = new DataSet();
                sda.Fill(ds);
                return ds;
                //con.Close();
                //con.Dispose();
            }
            finally
            {
                //con.Close();
                con.Dispose();
            }
        }    DataSet ic, bg, fb;    private void GetData()
        {
            ic = bandshen("select distinct fid from a  ");
            bg = bandshen("select distinct fid,fname from b ");
            fb = bandshen("select  fid,fname from c");    }    private void BuildTree()
        {
            for (int i = 0; i < ic.Tables[0].Rows.Count; i++)
            {
                TreeNode myNode = new TreeNode();
                this.TreeView1.Nodes.Add(myNode);
                myNode.Text = ic.Tables[0].Rows[i]["fid"].ToString();
                //添加第二层的bgroup
                DataRow[] bg1drs = bg.Tables[0].Select("fid='" + myNode.Text + "'");
                foreach (DataRow dr in bg1drs)
                {
                    TreeNode subNode = new TreeNode();
                    subNode.Text = dr["fname"].ToString();
                    myNode.ChildNodes.Add(subNode);
                    //添加第三层temp_icbom
                    DataRow[] fb2drs = fb.Tables[0].Select("fid='" + subNode.Text + "'");
                    foreach (DataRow fb2dr in fb2drs)
                    {
                        TreeNode sub2Node = new TreeNode();
                        sub2Node.Text = fb2dr["fname"].ToString();
                        subNode.ChildNodes.Add(sub2Node);
                    }
                }
                //添加第二层的temp_icbom
                DataRow[] fb1drs = fb.Tables[0].Select("fid='" + myNode.Text + "'");
                foreach (DataRow fb1dr in fb1drs)
                {
                    TreeNode sub1Node = new TreeNode();
                    sub1Node.Text = fb1dr["fname"].ToString();
                    myNode.ChildNodes.Add(sub1Node);
                }        }
        } 
    }