小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C# TreeView從數(shù)據(jù)庫綁定數(shù)據(jù)

 春夜喜雨LBR 2018-01-28

封裝成一個函數(shù),方便直接調(diào)用

  1. //綁定TrreView  
  2.         private void InitModuleTree(DataTable dt)  
  3.         {  
  4.             //清空treeview上所有節(jié)點(diǎn)  
  5.             this.tree_Role.Nodes.Clear();    
  6.             int[] gen = new int[dt.Rows.Count]; //用于存儲父節(jié)點(diǎn)Tag  
  7.             int[] zi = new int[dt.Rows.Count];  //用于存儲子節(jié)點(diǎn)Tag  
  8.             for (int i = 0; i < gen.Length; i++)  
  9.             {  
  10.                 string zhi=dt.Rows[i][3].ToString();//獲取節(jié)點(diǎn)Tag值   eg:1-2  
  11.                 if (zhi.Length>1)   //表示是子節(jié)點(diǎn)   eg:1-2  
  12.                 {  
  13.                     gen[i] = int.Parse(zhi.Substring(0, zhi.IndexOf('-')));  
  14.                     zi[i] = int.Parse(zhi.Substring(zhi.IndexOf('-') + 1));  
  15.                 }  
  16.                 else    //表示是根節(jié)點(diǎn)   eg:2  
  17.                 {  
  18.                     //將所有父節(jié)點(diǎn)加到treeview上  
  19.                     zi[i] =int.Parse(zhi);  
  20.                     TreeNode nodeParent = new TreeNode();  
  21.                     nodeParent.Tag = (zi[i]).ToString();  
  22.                     nodeParent.Text = dt.Rows[i][1].ToString();  
  23.                     tree_Role.Nodes.Add(nodeParent);  
  24.                 }  
  25.             }  
  26.             bindChildNote(dt,gen,zi);  
  27.         }  

  1. //綁定子節(jié)點(diǎn)  
  2.         private void bindChildNote(DataTable dt, int[] gen, int[] zi)   
  3.         {  
  4.             for (int i = 0; i < gen.Length; i++)      
  5.             {  
  6.                 if (gen[i] != 0 && zi[i] != 0)        //便利所有節(jié)點(diǎn),找到所有子節(jié)點(diǎn)  
  7.                 {  
  8.                     TreeNode childNode = new TreeNode();  
  9.                     foreach (TreeNode item in tree_Role.Nodes)   //便歷treeview上所有父節(jié)點(diǎn)  
  10.                     {  
  11.                         if (item.Tag.ToString() == gen[i].ToString())  //找到當(dāng)前子節(jié)點(diǎn)的父節(jié)點(diǎn)  
  12.                         {  
  13.                             childNode.Tag = zi[i].ToString();  
  14.                             childNode.Text = dt.Rows[i][1].ToString();  
  15.                             item.Nodes.Add(childNode);  
  16.                         }  
  17.                     }  
  18.                 }  
  19.             }  
  20.             tree_Role.ExpandAll();      //展開整棵樹  
  21.         }  

數(shù)據(jù)庫結(jié)構(gòu):


最終結(jié)果:



引用代碼:

  1. namespace TreeeeeeeeeeeView  
  2. {  
  3.     public partial class Treeeeeeeeeee : Form  
  4.     {  
  5.         public Treeeeeeeeeee()  
  6.         {  
  7.             InitializeComponent();  
  8.   
  9.             //從數(shù)據(jù)庫獲取數(shù)據(jù),得到結(jié)果為DataTable  
  10.             SystemManager.Dao.RolePower dao = new SystemManager.Dao.RolePower();  
  11.             DataSet ds = CommonLib.Dao.CompressUtil.DeCompress(dao.getSystemModule());  
  12.             DataTable dt = ds.Tables[0];  
  13.             InitModuleTree(dt);  
  14.         }  
  15.   
  16.         //綁定TrreView  
  17.         private void InitModuleTree(DataTable dt)  
  18.         {  
  19.             //清空treeview上所有節(jié)點(diǎn)  
  20.             this.tree_Role.Nodes.Clear();    
  21.             int[] gen = new int[dt.Rows.Count]; //用于存儲父節(jié)點(diǎn)Tag  
  22.             int[] zi = new int[dt.Rows.Count];  //用于存儲子節(jié)點(diǎn)Tag  
  23.             for (int i = 0; i < gen.Length; i++)  
  24.             {  
  25.                 string zhi=dt.Rows[i][3].ToString();//獲取節(jié)點(diǎn)Tag值   eg:1-2  
  26.                 if (zhi.Length>1)   //表示是子節(jié)點(diǎn)   eg:1-2  
  27.                 {  
  28.                     gen[i] = int.Parse(zhi.Substring(0, zhi.IndexOf('-')));  
  29.                     zi[i] = int.Parse(zhi.Substring(zhi.IndexOf('-') + 1));  
  30.                 }  
  31.                 else    //表示是根節(jié)點(diǎn)   eg:2  
  32.                 {  
  33.                     //將所有父節(jié)點(diǎn)加到treeview上  
  34.                     zi[i] =int.Parse(zhi);  
  35.                     TreeNode nodeParent = new TreeNode();  
  36.                     nodeParent.Tag = (zi[i]).ToString();  
  37.                     nodeParent.Text = dt.Rows[i][1].ToString();  
  38.                     tree_Role.Nodes.Add(nodeParent);  
  39.                 }  
  40.             }  
  41.             bindChildNote(dt,gen,zi);  
  42.         }  
  43.   
  44.         //綁定子節(jié)點(diǎn)  
  45.         private void bindChildNote(DataTable dt, int[] gen, int[] zi)   
  46.         {  
  47.             for (int i = 0; i < gen.Length; i++)      
  48.             {  
  49.                 if (gen[i] != 0 && zi[i] != 0)        //便利所有節(jié)點(diǎn),找到所有子節(jié)點(diǎn)  
  50.                 {  
  51.                     TreeNode childNode = new TreeNode();  
  52.                     foreach (TreeNode item in tree_Role.Nodes)   //便歷treeview上所有父節(jié)點(diǎn)  
  53.                     {  
  54.                         if (item.Tag.ToString() == gen[i].ToString())  //找到當(dāng)前子節(jié)點(diǎn)的父節(jié)點(diǎn)  
  55.                         {  
  56.                             childNode.Tag = zi[i].ToString();  
  57.                             childNode.Text = dt.Rows[i][1].ToString();  
  58.                             item.Nodes.Add(childNode);  
  59.                         }  
  60.                     }  
  61.                 }  
  62.             }  
  63.             tree_Role.ExpandAll();      //展開整棵樹  
  64.         }  
  65.           
  66.     }  
  67. }  


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多