You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.5 KiB
35 lines
1.5 KiB
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace NFine.Code
|
|
{
|
|
public static class TreeGrid
|
|
{
|
|
public static string TreeGridJson(this List<TreeGridModel> data)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append("{ \"rows\": [");
|
|
sb.Append(TreeGridJson(data, -1, "0"));
|
|
sb.Append("]}");
|
|
return sb.ToString();
|
|
}
|
|
private static string TreeGridJson(List<TreeGridModel> 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("}{", "},{");
|
|
}
|
|
}
|
|
}
|