zoukankan      html  css  js  c++  java
  • 递归方式实现树的展示形式

    1.模拟出数据

     1 private DataTable CreateDataTable()
     2         {
     3             DataTable table = new DataTable();
     4             DataColumn column1 = new DataColumn("Id", typeof(string));
     5             DataColumn column2 = new DataColumn("Text", typeof(String));
     6             DataColumn column3 = new DataColumn("ParentId", typeof(string));
     7             table.Columns.Add(column1);
     8             table.Columns.Add(column2);
     9             table.Columns.Add(column3);
    10 
    11             DataRow row = table.NewRow();
    12             row[0] = "china";
    13             row[1] = "中国";
    14             row[2] = DBNull.Value;
    15             table.Rows.Add(row);
    16 
    17             row = table.NewRow();
    18             row[0] = "henan";
    19             row[1] = "河南省";
    20             row[2] = "china";
    21             table.Rows.Add(row);
    22 
    23             row = table.NewRow();
    24             row[0] = "zhumadian";
    25             row[1] = "驻马店市";
    26             row[2] = "henan";
    27             table.Rows.Add(row);
    28 
    29             row = table.NewRow();
    30             row[0] = "luohe";
    31             row[1] = "漯河市";
    32             row[2] = "henan";
    33             table.Rows.Add(row);
    34 
    35             row = table.NewRow();
    36             row[0] = "anhui";
    37             row[1] = "安徽省";
    38             row[2] = "china";
    39             table.Rows.Add(row);
    40 
    41             row = table.NewRow();
    42             row[0] = "hefei";
    43             row[1] = "合肥市";
    44             row[2] = "anhui";
    45             table.Rows.Add(row);
    46 
    47             row = table.NewRow();
    48             row[0] = "golden";
    49             row[1] = "金色池塘小区";
    50             row[2] = "hefei";
    51             table.Rows.Add(row);
    52 
    53             row = table.NewRow();
    54             row[0] = "ustc";
    55             row[1] = "中国科学技术大学";
    56             row[2] = "hefei";
    57             table.Rows.Add(row);
    58 
    59             return table;
    60         }
    View Code

    2.添加树的数据

     1 private void LoadData()
     2         {
     3             // 模拟从数据库返回数据表
     4             DataTable table = CreateDataTable();
     5             DataSet ds = new DataSet();
     6             ds.Tables.Add(table);
     7             ds.Relations.Add("TreeRelation", ds.Tables[0].Columns["Id"], ds.Tables[0].Columns["ParentId"]);
     8 
     9             foreach (DataRow row in ds.Tables[0].Rows)
    10             {
    11                 if (row.IsNull("ParentId"))
    12                 {
    13                     TreeNode node = new TreeNode();
    14                     node.Text = row["Text"].ToString();
    15                     node.Expanded = true;
    16                     tree.Nodes.Add(node);
    17                     ResolveSubTree(row, node);
    18                 }
    19             }
    20         }
    View Code

    3.递归实现无限极添加

     1 private void ResolveSubTree(DataRow dataRow, TreeNode treeNode)
     2         {
     3             DataRow[] rows = dataRow.GetChildRows("TreeRelation");
     4             if (rows.Length > 0)
     5             {
     6                 treeNode.Expanded = true;
     7                 foreach (DataRow row in rows)
     8                 {
     9                     TreeNode node = new TreeNode();
    10                     node.Text = row["Text"].ToString();
    11                     treeNode.ChildNodes.Add(node);
    12                     ResolveSubTree(row, node);
    13                 }
    14             }
    15         }
    View Code
  • 相关阅读:
    WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
    分享几个.NET WinForm开源组件,纪念逐渐远去的WinForm。。。
    小议主子表INT自增主键插入记录的方法SQL server]教程
    微软工程师主讲的SqlServer2005视频教程
    11 个重要的数据库设计规则
    sql数据库设计学习---数据库设计规范化的五个要求
    YY淘宝商品数据库设计
    ASP.NET MVC的客户端验证:jQuery的验证
    ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
    UNIX标准化及实现之POSIX标准可选头文件
  • 原文地址:https://www.cnblogs.com/shinelhui/p/3810967.html
Copyright © 2011-2022 走看看