递归生成树形菜单
2017-07-17 15:56
387 查看
递归生成树
树形菜单类
//调用的方法 public ActionResult TreeView() { List<TreeModel> ltm = this.GetTrees(); string tree = JsonConvert.SerializeObject(ltm).ToString(); return Content(tree); } public List<TreeModel> GetTrees() { List<ModuleEntity> listQuery = map.GetList().ToList<ModuleEntity>(); List<ModuleEntity> me = listQuery.Where(t => t.F_ParentId == "0").ToList<ModuleEntity>(); if (me==null) { return null; } List<ModuleEntity> Lme = me.ToList<ModuleEntity>(); List<TreeModel> tm = new List<TreeModel>(); foreach (ModuleEntity item in Lme) { TreeModel tms = new TreeModel(); tms.id = item.F_Id; tms.name = item.F_FullName; tms.parentId = item.F_ParentId; tms.spread = "true"; List<TreeModel> child = new List<TreeModel>(); GetTree(listQuery, child, item.F_Id); tms.children = child; tm.Add(tms); } return tm; } //递归获取数据 public void GetTree(List<ModuleEntity> list,List<TreeModel> listTree,string parentId) { foreach (ModuleEntity item in list) { if (item.F_ParentId==parentId) { TreeModel tm = new TreeModel(); tm.id=item.F_Id; tm.parentId = item.F_ParentId; tm.name = item.F_FullName; tm.spread = "true"; tm.children = new List<TreeModel>(); listTree.Add(tm); GetTree(list,tm.children,tm.id); } } }
树形菜单类
public class TreeModel { public string id { get; set; } public string parentId { get; set; } public string name { get; set; } public string spread { get; set; } public string href { get; set; } public List<TreeModel> children { get; set; } }
相关文章推荐
- TreeView递归生成树形菜单
- Freemarker 生成树形导航菜单(递归)
- jQuery递归遍历JSON树,生成对应的ul-li组合,形成树形菜单
- asp.net TreeView递归循环子节点生成树形菜单实例
- Freemarker如何生成树形导航菜单(递归)
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
- 基于递归实现的php树形菜单代码
- 递归生成菜单树的下拉框 struts2
- (转)sql server 生成树形菜单
- 递归绑定树形菜单
- JavaScript递归方法 生成 json tree 树形结构数据
- C# 中读取xml 并 生成菜单项 树形菜单
- 关于递归调用,实现树形菜单的样式
- JavaScript递归算法生成树形菜单
- PB中实现菜单的动态生成(函数递归实现)
- JSP生成树形菜单
- Python 递归返回树形菜单JSON串 <flask>
- C# TreeView菜单,MenuStrip菜单递归动态生成例子
- 生成三级树形菜单