TreeGridJson.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Lottomat.Util.WebControl
  6. {
  7. /// <summary>
  8. /// 构造树形表格Json
  9. /// </summary>
  10. public static class TreeGridJson
  11. {
  12. public static int lft = 1, rgt = 1000000;
  13. /// <summary>
  14. /// 转换树形Json
  15. /// </summary>
  16. /// <param name="list">数据源</param>
  17. /// <param name="ParentId">父节点</param>
  18. /// <returns></returns>
  19. public static string TreeJson(List<TreeGridEntity> ListData, int index, string ParentId)
  20. {
  21. StringBuilder sb = new StringBuilder();
  22. var ChildNodeList = ListData.FindAll(t => t.parentId == ParentId);
  23. if (ChildNodeList.Count > 0) { index++; }
  24. foreach (TreeGridEntity entity in ChildNodeList)
  25. {
  26. string strJson = entity.entityJson;
  27. strJson = strJson.Insert(1, "\"level\":" + index + ",");
  28. strJson = strJson.Insert(1, "\"isLeaf\":" + (entity.hasChildren == true ? false : true).ToString().ToLower() + ",");
  29. strJson = strJson.Insert(1, "\"expanded\":" + (entity.expanded).ToString().ToLower() + ",");
  30. strJson = strJson.Insert(1, "\"lft\":" + lft++ + ",");
  31. strJson = strJson.Insert(1, "\"rgt\":" + rgt-- + ",");
  32. sb.Append(strJson);
  33. sb.Append(TreeJson(ListData, index, entity.id));
  34. }
  35. return sb.ToString().Replace("}{", "},{");
  36. }
  37. /// <summary>
  38. /// 转换树形Json
  39. /// </summary>
  40. /// <param name="list">数据源</param>
  41. /// <returns></returns>
  42. public static string TreeJson(this List<TreeGridEntity> ListData)
  43. {
  44. StringBuilder sb = new StringBuilder();
  45. sb.Append("{ \"rows\": [");
  46. sb.Append(TreeJson(ListData, -1, "0"));
  47. sb.Append("]}");
  48. return sb.ToString();
  49. }
  50. }
  51. }