下面的代码是.Net下利用递归获取所有层级的树形结构,适用于EasyUI tree树形结构使用
适用.net所有情况,演示代码是在MVC结构下的,同样适用于其他结构,
代码注释比较全,不明白的可以加群询问
02 | public JsonResult GetList() |
04 | List<info> list = bll.GetListInfo(); |
05 | List<EasyUiTree> trees = new List<EasyUiTree>(); |
06 | if (list != null && list.Count > 0) |
09 | foreach (var item in list) |
12 | EasyUiTree easyUiModel = new EasyUiTree(); |
13 | easyUiModel.children = new List<EasyUiTree>(); |
14 | easyUiModel.id = item.Id; |
15 | easyUiModel.text = item.Name; |
16 | easyUiModel.state = "open" ; |
17 | easyUiModel.ischecked = true ; |
19 | var treeInfo = getTree(item.Id); |
20 | if (treeInfo != null && treeInfo.Count > 0) |
22 | easyUiModel.children.AddRange(treeInfo); |
24 | trees.Add(easyUiModel); |
27 | return this .Json(trees); |
34 | public class EasyUiTree |
36 | public string id { get ; set ; } |
37 | public string text { get ; set ; } |
39 | /// 'open' 或 'closed',默认是 'open' |
40 | /// 如果为'closed'的时候,将不自动展开该节点 |
42 | public string state { get ; set ; } |
43 | public bool ischecked { get ; set ; } |
44 | public object attributes { get ; set ; } |
45 | public List<EasyUiTree> children { get ; set ; } |
51 | /// <param name="parentId"></param> |
52 | /// <returns></returns> |
53 | public List<EasyUiTree> getTree( string parentId) |
56 | List<EasyUiTree> modelList = new List<EasyUiTree>(); |
57 | var list = Bll.GetSonList(parentId); |
60 | foreach (var item in list) |
62 | EasyUiTree model = new EasyUiTree(); |
63 | model.children = new List<EasyUiTree>(); |
65 | model.text = item.Name; |
66 | model.state = "closed" ; |
67 | model.ischecked = true ; |
69 | var sonTreeInfo = getTree(item.Id); |
70 | if (sonTreeInfo != null ) |
72 | model.children.AddRange(sonTreeInfo); |
原文链接:.Net递归获取EasyUI tree树形结构数据