zoukankan      html  css  js  c++  java
  • Tree构建

    后端构建一颗树,返回前端,如下所示。

    [
        {
            "Guid": "0ada72a1-0c29-4a49-80f2-adeeae4409bd",
            "id": 1,
            "text": "苏泊尔",
            "children": [
                {
                    "Guid": "27be157d-46c1-476d-abb0-3b08cf9a55a5",
                    "id": 3,
                    "text": "车间一一",
                    "children": []
                },
                {
                    "Guid": "0e107c67-5933-4cec-bd05-b1c4ffff7f9d",
                    "id": 2,
                    "text": "车间二",
                    "children": [
                        {
                            "Guid": "d3bf0d47-98e7-4dd7-aac5-ab0aeb7a6486",
                            "id": 5,
                            "text": "A2班组",
                            "children": []
                        },
                        {
                            "Guid": "2ada1f14-186d-4726-9740-ee752363b2fc",
                            "id": 4,
                            "text": "A!班组",
                            "children": []
                        }
                    ]
                }
            ]
        }
    ]

    这里我通过递归方法将树输出。

    /// <summary>
            /// 递归构建树
            /// </summary>
            /// <param name="sid">父id</param>
            /// <returns></returns>
            List<DepartmentNodeModel> Tree(int sid)
            {
                List<Departments> departmentsList = DepartmentsData.QueryDepartments(d => d.Supdeptid == sid);
                List<DepartmentNodeModel> departmentNodeTree = new List<DepartmentNodeModel>();
    
                foreach (Departments d in departmentsList)
                {
                    DepartmentNodeModel departmentNode = new DepartmentNodeModel();
                    departmentNode.Guid = d.ID;
                    departmentNode.id = d.Deptid;
                    departmentNode.text = d.Deptname;
                    departmentNode.children = Tree(d.Deptid);
                    departmentNodeTree.Add(departmentNode);
                }
    
                return departmentNodeTree;
            }
    
            /// <summary>
            /// 获取部门树
            /// </summary>
            /// <returns></returns>
            [HttpGet, Route("GetDepartmentsTree")]
            public List<DepartmentNodeModel> GetDepartmentsTree()
            {
                //LIST => TREE
                List<DepartmentNodeModel> departmentNodeTree = Tree(-1);
                return departmentNodeTree;
            }

    能在项目中用到递归还是蛮兴奋的,哈哈

  • 相关阅读:
    FFOM_秒交易行
    FFOM_脚本源代码
    农药_挂周金币
    保存数据,父页面列表数据更新
    点击按钮不弹出新窗口
    GridView1_RowDeleting 弹出确认对话框
    判断复选框
    获取Guid
    2019 gplt团体程序设计天梯赛总结
    Codeforces Round #550 (Div. 3)E. Median String
  • 原文地址:https://www.cnblogs.com/ACMessi/p/8824246.html
Copyright © 2011-2022 走看看