您的位置:首页 > 其它

递归生成树形菜单

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; }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: