树形结构的后端实现
1、增加Model模型结构
/// <summary> /// 子id /// </summary> public string Id { get; set; } /// <summary> /// 父id /// </summary> public string ParentId { get; set; } /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 图标 /// </summary> public string Icon { get; set; } /// <summary> /// 是否展开 /// </summary> public bool Expanded { get; set; }=true; public bool Selected { get; set; } = true; /// <summary> /// 子节点 /// </summary> public List<TreeModel> Children { get; set; } /// <summary> /// 无参构造函数 /// </summary> public TreeModel() { Children = new List<TreeModel>(); } /// <summary> /// 有参构造函数 /// </summary> /// <param name="id">子id</param> /// <param name="name">名称</param> /// <param name="parentId">父id</param> public TreeModel(string id, string name, string parentId) { this.Id = id; this.Name = name; this.ParentId = parentId; Children = new List<TreeModel>(); } /// <summary> /// 有参构造函数 /// </summary> /// <param name="id">子id</param> /// <param name="name">名称</param> /// <param name="parent">父节点</param> public TreeModel(string id, string name, TreeModel parent) { this.Id = id; this.Name = name; this.ParentId = parent.Id; Children = new List<TreeModel>(); }
2、递归实现树形结构的
/// <summary> /// 使用递归方法建树 /// </summary> public static List<TreeModel> BulidTreeByRecursive(List<TreeModel> treeNodes, List<TreeModel> resps, string pID) { resps = new List<TreeModel>(); List<TreeModel> tempList = treeNodes.Where(c => c.ParentId == pID).ToList(); for (int i = 0; i < tempList.Count; i++) { TreeModel node = new TreeModel(); node.Id = tempList[i].Id; node.ParentId = tempList[i].ParentId; node.Name = tempList[i].Name; node.Icon = tempList[i].Icon; node.Children = BulidTreeByRecursive(treeNodes, resps, node.Id); resps.Add(node); } return resps; }
3、然后基本实现,所属接口调用