注册 登录
编程论坛 ASP.NET技术论坛

无限递归实现treeview动态添加节点

雪雨星风 发布于 2008-08-12 11:54, 5074 次点击
这个方法是用来实现往treeview里面填充数据库中的数据的
我以前没有用过
在网上找了一些资料
他们都是用递归实现的
我看不太明白   那位能把我的代码改改  
多加点注释   说实话   递归什么原理我都不知道




protected void addtreview()
    {
        SqlConnection myconn = new SqlConnection();
        myconn.ConnectionString = "server=.;database=baoming;uid=sa;pwd=admin";
        myconn.Open();  //连接数据库
        SqlDataAdapter sda = new SqlDataAdapter("select * from treeview where tree_class = 1", myconn); //读取根节点数据
        DataSet ds = new DataSet();
        sda.Fill(ds);      
        for (int i = 0;i<ds.Tables[0].Rows.Count;i++)   //遍历根节点数量
        {
            SqlDataAdapter sda2 = new SqlDataAdapter("select * from treeview where tree_lei = '" + ds.Tables[0].Rows[i]["tree_id"].ToString() + "'", myconn);   //读取子节点数据
            DataSet ds2 = new DataSet();
            sda2.Fill(ds2);
            TreeNode node = new TreeNode();
            node.Text = ds.Tables[0].Rows[i]["tree_name"].ToString();   //填充根节点数据                     
            for (int j = 0; j < ds2.Tables[0].Rows.Count; j++)  //遍历第一级子结点数量
            {
                TreeNode newnode = new TreeNode();
                newnode.Text = ds2.Tables[0].Rows[j]["tree_name"].ToString();   //填充子节点数据
                newnode.NavigateUrl = ds2.Tables[0].Rows[j]["tree_url"].ToString();
                node.ChildNodes.Add(newnode);  //将子节点添加到父节点下              
            }            
            TreeView2.Nodes.Add(node);  //填充treeview
        }
        myconn.Close();
    }
6 回复
#2
雪雨星风2008-08-12 11:55
我这样写有很多的弊端
不好管理    比如想增加为三级的  或四级的  就完了
#3
雪雨星风2008-08-12 11:57
高手请前来指点一二
小弟在这里先说声谢谢了
#4
leavestars2008-08-12 21:54
用XML来写就简单多了`
#5
雪雨星风2008-08-13 11:52
xml我更不会了   据听说很简单的
  我现在只想知道用递归怎么实现
#6
logan20092009-10-27 19:39
#7
闻启学2009-12-30 09:45
递归最简单是自己调用自己!!
1