数据结构~在页面上渲染树型结构

简介:
标准树的代码
复制代码
  1: class Tree  

  2:         {       

  3:             static Data.test.ICategoriesRepository iCategoriesRepository = new Data.test.CategoriesRepository(); 

  4:             /// <summary>

  5:             /// 树形数据对象列表   

  6:             /// </summary>

  7:              static List<Entity.test.Category> list = null;       

  8:            /// <summary>    

  9:            /// 获取当前树形数据对象列表   

 10:            /// </summary>   

 11:             internal static List<Entity.test.Category> ProductVirtualCategoryList 

 12:             {

 13:                 get { return list; }

 14:             }     

 15:             static Tree() 

 16:             {

 17:                 Reload();

 18:             }

 19:             /// <summary> 

 20:             /// 重新加载分类树型列表     

 21:             /// </summary>

 22:            internal static void Reload()  

 23:            {

 24:                list = iCategoriesRepository.GetCategories().ToList();   

 25:            }    

 26:             /// <summary>    

 27:             ///  根据父对象,找到子孙树,通过递归所到所有子对象,并把对象赋给参数father   

 28:             ///  </summary>   

 29:             ///  <param name="father">父对象</param>    

 30:             static internal void GetSublCategories(Entity.test.Category father)   

 31:             {      

 32:                 father.SubCategoryies = list.Where(item => item.ParentId.Equals(father.Id)).ToList();   

 33:                 father.SubCategoryies.ForEach(item =>  {item.FatherCategory = father;  

 34:                     GetSublCategories(item);   

 35:                 });    

 36:             }   

 37:         }
复制代码
 树的组装,与前台HTML的拼接
复制代码
  1:    #region 树的遍历(递归思想)  

  2:     Entity.test.Category list = new Entity.test.Category { Id = 1 };   

  3:     Tree.GetSublCategories(list);//为list填充子树        

  4:     StringBuilder html = new StringBuilder();  

  5:     html.Append("<ul>");  

  6:     GetSubCategory(html, list); 

  7:     html.Append("</ul>");    

  8:     #endregion    

  9:     Console.WriteLine(html);

树的显示时用到的递归方法

 

  1: /// <summary>

  2: /// 通过递归拼树形结构

  3: /// </summary>

  4: /// <param name="html"></param>

  5: /// <param name="category"></param>

  6: private static void GetSubCategory(StringBuilder html, Entity.test.Category category)   

  7:    {       

  8:     html.Append("<li>");    

  9:     html.Append("<input type='hidden' value='" + category.Id + "' />");     

 10:     html.Append("<a href='#' name='" + category.Name + "'>");    

 11:     html.Append("<ins>&nbsp;</ins>");       

 12:     html.Append(category.Id + "-" + category.Name + "(" + category.Level + ")");    

 13:     html.Append("</a>");      

 14:     if (category.SubCategoryies != null && category.SubCategoryies.Count > 0)        

 15:      {         

 16:     html.Append("<ul>");    

 17:     foreach (var item in category.SubCategoryies)     

 18:      {       

 19:        GetSubCategory(html, item);     

 20:      }            

 21:     html.Append("</ul>"); 

 22:    }        

 23:     html.Append("</li>"); 

 24:   }
复制代码
本文转自博客园张占岭(仓储大叔)的博客,原文链接:数据结构~在页面上渲染树型结构,如需转载请自行联系原博主。
目录
相关文章
|
9天前
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
82 64
|
2天前
|
存储 算法 关系型数据库
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
这篇文章主要介绍了多路查找树的基本概念,包括二叉树的局限性、多叉树的优化、B树及其变体(如2-3树、B+树、B*树)的特点和应用,旨在帮助读者理解这些数据结构在文件系统和数据库系统中的重要性和效率。
数据结构与算法学习二一:多路查找树、二叉树与B树、2-3树、B+树、B*树。(本章为了解基本知识即可,不做代码学习)
|
10天前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
9天前
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解(三)
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解
|
9天前
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解(二)
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解
|
9天前
|
存储
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解(一)
【高阶数据结构】二叉树进阶探秘:AVL树的平衡机制与实现详解
|
20天前
|
JSON 前端开发 JavaScript
一文了解树在前端中的应用,掌握数据结构中树的生命线
该文章详细介绍了树这一数据结构在前端开发中的应用,包括树的基本概念、遍历方法(如深度优先遍历、广度优先遍历)以及二叉树的先序、中序、后序遍历,并通过实例代码展示了如何在JavaScript中实现这些遍历算法。此外,文章还探讨了树结构在处理JSON数据时的应用场景。
一文了解树在前端中的应用,掌握数据结构中树的生命线
|
1天前
探索顺序结构:栈的实现方式
探索顺序结构:栈的实现方式
|
2天前
|
存储 算法
数据结构与算法学习十六:树的知识、二叉树、二叉树的遍历(前序、中序、后序、层次)、二叉树的查找(前序、中序、后序、层次)、二叉树的删除
这篇文章主要介绍了树和二叉树的基础知识,包括树的存储方式、二叉树的定义、遍历方法(前序、中序、后序、层次遍历),以及二叉树的查找和删除操作。