using System.Collections.Generic; using System.Text; namespace NFine.Code { public static class TreeGrid { public static string TreeGridJson(this List data) { StringBuilder sb = new StringBuilder(); sb.Append("{ \"rows\": ["); sb.Append(TreeGridJson(data, -1, "0")); sb.Append("]}"); return sb.ToString(); } private static string TreeGridJson(List data, int index, string parentId) { StringBuilder sb = new StringBuilder(); var ChildNodeList = data.FindAll(t => t.parentId == parentId); if (ChildNodeList.Count > 0) { index++; } foreach (TreeGridModel entity in ChildNodeList) { string strJson = entity.entityJson; strJson = strJson.Insert(1, "\"loaded\":" + (entity.loaded == true ? false : true).ToString().ToLower() + ","); strJson = strJson.Insert(1, "\"expanded\":" + (entity.expanded).ToString().ToLower() + ","); strJson = strJson.Insert(1, "\"isLeaf\":" + (entity.isLeaf == true ? false : true).ToString().ToLower() + ","); strJson = strJson.Insert(1, "\"parent\":\"" + parentId + "\","); strJson = strJson.Insert(1, "\"level\":" + index + ","); sb.Append(strJson); sb.Append(TreeGridJson(data, index, entity.id)); } return sb.ToString().Replace("}{", "},{"); } } }