遞歸小應用 .

 
  1. private void BindTree()  
  2.         {  
  3.             string sql = "select ID,[name],byte from Sut";  
  4.             DataTable dt = SQLHelper.ExecuteDataTable(sql);//獲取數據源   
  5.             int s = dt.Rows.Count;//   
  6.             DataView dv = new DataView(dt);  
  7.             dv.RowFilter = "byte=0";  
  8.             foreach (DataRowView drv in dv)  
  9.             {  
  10.                 TreeNode node = new TreeNode();  
  11.                 node.Text = drv["Name"].ToString();//顯示的文本   
  12.                 node.Tag = drv["ID"].ToString();//不顯示的 文本 值   
  13.                 treeView1.Nodes.Add(node);//添加到根節點   
  14.                 AddReplies(dt, node);//遞歸函數    
  15.             }  
  16.         }  
  17.         protected void AddReplies(DataTable dt, TreeNode node)  
  18.         {  
  19.             DataView dv = new DataView(dt);  
  20.             dv.RowFilter = "byte='" + node.Tag + "'";//過濾 node。Value 爲上級的treeNode 值   
  21.             foreach (DataRowView row in dv)  
  22.             {  
  23.                 TreeNode replyNode = new TreeNode();//新建一個節點   
  24.                 replyNode.Text = row["Name"].ToString();//顯示的文本   
  25.                 replyNode.Tag = row["ID"].ToString();//不顯示的 文本 值   
  26.                 node.Nodes.Add(replyNode);//添加到子節點   
  27.                 AddReplies(dt, replyNode);//繼續遞歸函數   
  28.             }  
  29.         }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章