码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET递归添加树节点

时间:2014-10-09 22:45:47      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:des   io   os   ar   for   数据   sp   on   cti   

表设计如图:

id        title         parentid

1         asp.net   0

2         c#           0

3         c#_0       2

4         c#_1       3

5         c#_2       4

 

页面中添加一个TreeView控件

 

写添加节点方法:

  private void AddNode(int id, TreeNode parentnode)    

{        

      string sql = "select * from menu";//sql 语句        

       DataTable table = DB.GetDB(sql);//获取数据

        DataView view = new DataView(table);//把表数据添加到自定义视图中

        view.RowFilter = "parentid="+id;//设置视图查询条件

        foreach (DataRowView row in view)//遍历视图中数据        

   {              TreeNode node = new TreeNode();

                node.Text = row[1].ToString();            

                        int newid = Convert.ToInt32(row[0]);                        

                  

                  if (parentnode != null)            
                    {    

                          node.Expanded = false;                

                          parentnode.ChildNodes.Add(node);                

                          AddNode(newid, node);//递归查找节点            

                   }            

                  else            

                  {      

                     TreeView1.Nodes.Add(node);                

                     AddNode(newid, node);            

                    }                    

             }    

      }

 

DB类中GetDB()方法:

 public static SqlConnection sqlconn()    

{         string sqlconnstr = "database=menutree;data source=.;uid=sa;pwd=123";

        SqlConnection conn = new SqlConnection(sqlconnstr);         return conn;     }

    public static DataTable GetDB(string sql)    

{         SqlConnection connection = sqlconn();        

          SqlCommand comm = new SqlCommand(sql, connection);

        SqlDataAdapter ad = new SqlDataAdapter(comm);        

       DataTable table = new DataTable();        

           ad.Fill(table);        

 return table;     }

 

 

调用代码:

 

 protected void Page_Load(object sender, EventArgs e)    

{                if (!IsPostBack)        

{             TreeView1.Nodes.Clear();            

               AddNode(0, (TreeNode)null);        
}     }

完成!

ASP.NET递归添加树节点

标签:des   io   os   ar   for   数据   sp   on   cti   

原文地址:http://www.cnblogs.com/qimucheng/p/4014432.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!