cwjbxqmz
2024-02-26 569d7b0a25580af02faab95ecccf9252c4375e30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
 
namespace WebAPI.Models
{
    public class ToHierarchy
    {
        public static List<Menu> ToHierarchyList(List<Menu> limits, string HPartentID/*int? HPartentID = 0*/)
        {
            List<Menu> newLimitList = new List<Menu>();
            newLimitList = limits.Where(t => t.HPartentID == HPartentID).ToList();
            for (int i = 0; i < newLimitList.Count; i++)
            {
                newLimitList[i].childMenus = ToHierarchyList(limits, newLimitList[i].HPartentID);//下一层级
            }
            return newLimitList;
        }
 
 
        public static void digui(DataTable dt, List<Menu> tree)
        {
            for (int m = 0; m < tree.Count; m++)
            {
                tree[m].childMenus = new List<Menu>();
                for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
                {
                    if (tree[m].HitemID.ToString() == dt.Rows[i]["HPartentID"].ToString() && dt.Rows[i]["HitemID"].ToString() != dt.Rows[i]["HPartentID"].ToString())
                    {
                        Menu tbjson = new Menu();
                        tbjson.HitemID = dt.Rows[i]["HitemID"].ToString();
                        tbjson.HPartentID = dt.Rows[i]["HPartentID"].ToString();
                        tbjson.HNumber = dt.Rows[i]["HNumber"].ToString();
                        tbjson.HName = dt.Rows[i]["HName"].ToString();
                        tbjson.HLevel = tree[m].HLevel;
                        tbjson.Hurl = dt.Rows[i]["Hurl"].ToString();
                        tree[m].childMenus.Add(tbjson);
                    }
                }
                for (int i = 0; i < tree[m].childMenus.Count; i++)
                {
                    digui(dt, tree[m].childMenus);//再次用子集去循环,拿出子集的子集
                }
            }
 
        }
    }
}