//树形数据节点类 此处以layui treeSelect插件数据结构为例
public class TreeSelectModel_Layui {
/// <summary>
/// 数据唯一约束
/// </summary>
public string id { get; set; }
/// <summary>
/// 数据项名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 是否展开 true 展开,flase收起
/// </summary>
public bool open { get; set; }
/// <summary>
/// 是否选中
/// </summary>
public bool @checked { get; set; }
/// <summary>
/// 层级 可不赋值
/// </summary>
//public int level { get; set; }
public List<TreeSelectModel_Layui> children { get; set; }
}
//数据实体类
public class TreeData{
//行政区划编码
public string areaCode{get;set;}
//父编码
public string parentAreaCode{get;set;}
//行政区划名称
public string areaName{get;set;}
}
/// <summary>
/// 获取树形下拉选择框数据集合
/// </summary>
/// <returns></returns>
public async Task<List<TreeSelectModel_Layui>> GetTreeSelectList() {
List<TreeSelectModel_Layui> treeSelects = new List<TreeSelectModel_Layui>();
List<TreeData> dataList = await GetDataList(null);
if (selectList != null && selectList.Count > 0) {
List<TreeData> curList = new List<TreeData>();
if (selectList.Count(a => string.IsNullOrEmpty(a.parentAreaCode)) > 0)
{
curList = selectList.Where(a => string.IsNullOrEmpty(a.parentAreaCode)).ToList();
}
else {
curList = selectList;
}
foreach (TreeData item in curList) {
treeSelects.Add(new TreeSelectModel_Layui() {
id = item.areaCode,
name = item.areaName,
open = true,
@checked = false,
children = GetTreeSelectChildren(selectList, item.areaCode)
});
}
}
return treeSelects;
}
/// <summary>
/// 通过传入参数递归获取当前项的子级
/// </summary>
/// <param name="allList"></param>
/// <param name="curId"></param>
/// <returns></returns>
private List<TreeSelectModel_Layui> GetTreeSelectChildren(List<TreeData> allList, string curId)
{
List<TreeSelectModel_Layui> treeChildren = null;
if (allList.Count(a => a.parentAreaCode == curId) > 0)
{
treeChildren = new List<TreeSelectModel_Layui>();
foreach (TreeData item in allList.Where(a => a.parentAreaCode == curId).ToList())
{
treeChildren.Add(new TreeSelectModel_Layui()
{
id = item.areaCode,
name = item.areaName,
open = true,
@checked = false,
children = GetTreeSelectChildren(allList, item.areaCode)
});
}
}
return treeChildren;
}
【.net core】获取树形结构数据
最新推荐文章于 2024-07-31 18:13:00 发布