1.创建类
public class Node { public bool leaf { get; set; } public int FolderID { get; set; } public string iconCls { get; set; } public bool editable { get; set; } public bool expanded { get; set; } public int ParentFolderID { get; set; } public string text { get; set; } public bool InheritPerm { get; set; } //public string CreateDate { get; set; } //public string CreateBy { get; set; } public Node[] children { get; set; } }
2.从数据库获取数据转化成LIST
3.递归构建树形结构
public static string GetTree(List<Node> nodes) { var list = nodes.FindAll(a => a.ParentFolderID == 1);//最顶级的目录 foreach (var node in list) { if (node.text == "01.通讯录") { node.children = new Node[] { };//必须为空数组,不能为NULL,否则前端树节点会有错误 } GetTree(node, nodes); } return JsonConvert.SerializeObject(list); } public static void GetTree(Node paretnNode, List<Node> nodes) { List<Node> nodelist = new List<Node>(); foreach (var node in nodes) { if (node.ParentFolderID == paretnNode.FolderID) { GetTree(node, nodes); if (node.children == null) { node.children = new Node[] { };//必须为空数组,不能为NULL,否则前端树节点会有错误 } nodelist.Add(node); paretnNode.children = nodelist.ToArray(); } } }
来源:https://www.cnblogs.com/xielideboke/p/12161453.html