纽威
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

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("}{", "},{");
}
}
}