/// <summary> /// 这部分写的不好 要重新再写 /// </summary> /// <param name="data"></param> /// <returns></returns> public List <object> GetChildren(object data) { var originData = ParseData(data); var id = (int)originData.GetType().GetProperty("Id").GetValue(originData); return(DataListTItem.Where(item => ((int?)ParseData(item).GetType().GetProperty("ParentId").GetValue(ParseData(item))) == id).ToList()); }
protected void GetChildren(TModel model) { if (DataListTItem.Any(item => item.ParentId == model.Id)) { var children = DataListTItem.Where(item => item.ParentId == model.Id).ToList(); model.Children = children; model.Children.ForEach(child => GetChildren(child)); } else { model.Children = new List <TModel>(); } }
public async Task Load() { if (DataListTItem == null) { var resData = await DataSource.Load(); DataListTItem = resData.Data; } TopTItems = DataListTItem.Where(item => (int?)item.GetType().GetProperty("ParentId").GetValue(item) == null || (int?)item.GetType().GetProperty("ParentId").GetValue(item) == 0).ToList(); TreeNodes = DataListTItem.Select(item => new TreeNode <TModel>() { DataItem = item }).ToList(); TopTItems.ForEach(top => GetChildren(top)); StateHasChanged(); tree.ExpandAll(); StateHasChanged(); }