using System; using System.Collections.Generic; using System.Text; namespace Nirvana.Common { public static class TreeSelect { public static string TreeSelectJson(this List data, string parent = "0") { StringBuilder sb = new StringBuilder(); sb.Append("["); sb.Append(TreeSelectJson(data, parent, "")); sb.Append("]"); return sb.ToString(); } public static string TreeSelectGuidJson(this List data) { StringBuilder sb = new StringBuilder(); sb.Append("["); sb.Append(TreeSelectJson(data, Guid.Empty.ToString(), "")); sb.Append("]"); return sb.ToString(); } private static string TreeSelectJson(List data, string parentId, string blank) { StringBuilder sb = new StringBuilder(); var ChildNodeList = data.FindAll(t => t.parentId == parentId); var tabline = ""; if (parentId != "0" && parentId != Guid.Empty.ToString()) { tabline = "  "; } if (ChildNodeList.Count > 0) { tabline = tabline + blank; } foreach (TreeSelectModel entity in ChildNodeList) { entity.text = tabline + entity.text; string strJson = entity.ToJson(); sb.Append(strJson); sb.Append(TreeSelectJson(data, entity.id, tabline)); } return sb.ToString().Replace("}{", "},{"); } } public class TreeSelectModel { public string id { get; set; } public string text { get; set; } public string parentId { get; set; } public object data { get; set; } public string url { get; set; } public string icon { get; set; } } }