ASP.NET递归添加树节点

表设计如图:

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);        
}     }

完成!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。