easyui php树形递归,.Net递归获取EasyUI tree树形结构数据

下面的代码是.Net下利用递归获取所有层级的树形结构,适用于EasyUI tree树形结构使用

适用.net所有情况,演示代码是在MVC结构下的,同样适用于其他结构,

代码注释比较全,不明白的可以加群询问

[HttpPost]

public JsonResult GetList()

{

List list = bll.GetListInfo();//获取所有父级(顶级)列表

List trees = new List();

if (list != null && list.Count > 0)

{

//获取顶级节点和所有子节点

foreach (var item in list)

{

//获取顶级节点

EasyUiTree easyUiModel = new EasyUiTree();

easyUiModel.children = new List();

easyUiModel.id = item.Id;

easyUiModel.text = item.Name;

easyUiModel.state = "open";

easyUiModel.ischecked = true;

//获取子节点

var treeInfo = getTree(item.Id);

if (treeInfo != null && treeInfo.Count > 0)

{

easyUiModel.children.AddRange(treeInfo);

}

trees.Add(easyUiModel);

}

}

return this.Json(trees);

}

#region 获取分级后的父子数据

///

/// 构建easyUI数据

///

public class EasyUiTree

{

public string id { get; set; }

public string text { get; set; }

///

/// 'open' 或 'closed',默认是 'open'

/// 如果为'closed'的时候,将不自动展开该节点

///

public string state { get; set; }

public bool ischecked { get; set; }

public object attributes { get; set; }

public List children { get; set; }

}

///

/// 递归获取数据

///

///

///

public List getTree(string parentId)

{

//转换成Easyui数据

List modelList = new List();

var list = Bll.GetSonList(parentId);//根据父id,获取所有子节点数据

if (list.Count > 0)

{

foreach (var item in list)

{

EasyUiTree model = new EasyUiTree();

model.children = new List();

model.id = item.Id;

model.text = item.Name;

model.state = "closed";//折叠子节点

model.ischecked = true;

//递归子节点

var sonTreeInfo = getTree(item.Id);

if (sonTreeInfo != null)

{

model.children.AddRange(sonTreeInfo);

}

modelList.Add(model);

}

}

return modelList;

}

#endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值