tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
5
文章
229
粉丝
15
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

递归树形解析

4603人阅读 2020/1/9 17:23 总访问:1183446 评论:3 收藏:0 手机
分类: ASP.NET

使用的是layui的tree


后台:

  1. /// <summary>
  2. /// 递归函数
  3. /// </summary>
  4. /// <returns></returns>
  5. public void ParseTree(List<Department> departments, List<TreeModel> treeModels, int? parentId)
  6. {
  7.     //找当前层级下级(如果parentId==null那就是第一级)
  8.     List<Department> result = departments.Where(a => a.ParentId == parentId).ToList();
  9.     foreach (Department item in result)
  10.     {
  11.         TreeModel treeModel = new TreeModel();
  12.         treeModel.id = item.Id;
  13.         treeModel.title = item.DepartmentName;
  14.         //递归
  15.         ParseTree(departments, treeModel.children, treeModel.id);
  16.         treeModels.Add(treeModel);
  17.     }
  18. }
  19. [HttpGet]
  20. public JsonResult GetTreeData()
  21. {
  22.     mydbContext mydbContext = new mydbContext();
  23.     List<Department> departments = mydbContext.Department.ToList();
  24.     List<TreeModel> treeModels = new List<TreeModel>();
  25.     ParseTree(departments, treeModels, null);
  26.     return Json(treeModels);
  27. }

后台GetTreeData方法的详细注释:

  1. [HttpGet]
  2. public JsonResult GetTreeData()
  3. {
  4.     //List<Department>自己从数据库查询出来
  5.     List<Department> departments = mydbContext.Department.ToList();
  6. //List<TreeModel>是后台构建的一个格式,前端需要什么json格式就对应构建
  7.     List<TreeModel> treeModels = new List<TreeModel>();
  8. //调用递归函数,把从数据库查询出来的数据解析成前端需要的数据
  9.     ParseTree(departments, treeModels, null);
  10. //返回json数据给前端
  11.     return Json(treeModels);
  12. }



前台:前台很简单就是把处理好的json赋值给layui的tree即可

  1. <link href="~/lib/layui/css/layui.css" rel="stylesheet" />
  2. <script src="~/lib/layui/layui.js"></script>
  3. <script src="~/lib/jquery/dist/jquery.js"></script>
  4. <div id="test12" class="demo-tree-more" style="margin-top:60px"></div>
  5. <script>
  6.     layui.use(['tree''util'], function ({
  7.         var tree = layui.tree
  8.             , layer = layui.layer
  9.             , util = layui.util;
  10.         $.get('/tree/GetTreeData'function (data{
  11.             //基本演示
  12.             tree.render({
  13.                 elem'#test12'
  14.                 , data: data
  15.                 , showCheckboxtrue  //是否显示复选框
  16.                 , id'demoId1'
  17.                 , isJumptrue //是否允许点击节点时弹出新窗口跳转
  18.                 , clickfunction (obj{
  19.                     var data = obj.data;  //获取当前点击的节点数据
  20.                     layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));
  21.                 }
  22.             });
  23.         })
  24.     });
  25. </script>



欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

默认昵称

2021/12/15 11:30:02

请问mydbContext mydbContext = new mydbContext();是什么


小可爱:@默认昵称ef的上下文对象哇,用来查询数据库中数据的,这个根据你自己的项目来撒

2021/12/15 11:36:58 回复

默认昵称:@小可爱这段上下文不存在该如何解决

2021/12/15 14:51:00 回复