DrawManage/Tools/zTree.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
namespace DrawManage.Tools
{
public class zTree
{
public static string RebuildTree()
{
string JsonStr = "";
string sql = "";
BaseDao dao = new BaseDao();
List<Dictionary<string, object>> MainList = new List<Dictionary<string, object>>();
sql = "select NodeName as name,null as children, * from Node";
MainList = dao.GetList(sql, new string[] { "name", "children", "Id", "NodeName", "ParentId", "DrawNum", "IsParent" });
//foreach (var item in MainList)
//{
// item.Add("children", null);
// item.Add("name", item["NodeName"].ToString() + " " + item["DrawNum"].ToString());
//}
var TreeRoot = MainList.FindAll(t => t["ParentId"].ToString() == "0");
TreeRoot.Sort((x, y) => int.Parse(x["DrawNum"].ToString()).CompareTo(int.Parse(y["DrawNum"].ToString())));
//搜索第一级
foreach (var item in TreeRoot)
{
//搜索当前级下的
item["children"] = GetChildren(MainList, item);
}
JavaScriptSerializer jss = new JavaScriptSerializer();
JsonStr = jss.Serialize(TreeRoot);
return JsonStr;
}
private static List<Dictionary<string, object>> GetChildren(List<Dictionary<string, object>> AllTree, Dictionary<string, object> Parent)
{
List<Dictionary<string, object>> ChildrenList = new List<Dictionary<string, object>>();
string ParentId = Parent["Id"].ToString();
var Nodes = AllTree.FindAll(t => t["ParentId"].ToString() == ParentId);
//排序
if (Nodes.Count > 1)
{
Nodes.Sort((x, y) => int.Parse(x["DrawNum"].ToString()).CompareTo(int.Parse(y["DrawNum"].ToString())));
}
ChildrenList = Nodes;
//检测子树
foreach (var item in Nodes)
{
item["children"] = GetChildren(AllTree, item);
}
if (ChildrenList.Count == 0)
{
后面还有 70 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
