public List <DtreeData> GetDtree(int roleId) { var sysActions = dao.GetList(x => true).ToList(); List <DtreeData> list = new List <DtreeData>(); foreach (var item in sysActions) { DtreeData dtreeData = new DtreeData(); dtreeData.Id = item.Id.ToString(); dtreeData.Title = item.Name; dtreeData.ParentId = item.ParentId.ToString(); var role = item.SysRoles.Where(x => x.Id == roleId).FirstOrDefault(); if (role != null) { dtreeData.CheckArr = "1"; } list.Add(dtreeData); } List <DtreeData> dtreeDatas = new List <DtreeData>(); Dictionary <string, DtreeData> dict = new Dictionary <string, DtreeData>(); foreach (var item in list) { dict.Add(item.Id.ToString(), item); if (item.ParentId == "0") { dtreeDatas.Add(item); } } foreach (var item in list) { if (item.ParentId != "0") { dict[item.ParentId].Children.Add(item); } } return(dtreeDatas); }
private void GetMenuChild(DtreeData parent, SysAction uparent, List <SysAction> allMenu) { //遍历所有的对象 for (var i = 0; i < allMenu.Count; i++) { SysAction a = allMenu[i]; //如果这个对象的父id和这个父对象的id是相同的,那么说明这个对象是父对象的子对象 if (a.ParentId == uparent.Id) { //设置一个新的子对象,这里又用一个node来命名新的子对象不是很妥当 DtreeData node = new DtreeData(); //设置子对象的id node.Id = a.Id.ToString(); //设置子对象的名称 node.Title = a.Name; //一个递归调用,查找子对象是否还存在子对象 GetMenuChild(node, a, allMenu); //将这个子对象放入父easyUI树中 parent.Children.Add(node); } } }
public List <DtreeData> GetMenuTree() { var sysActions = dao.GetList(x => x.Type == ActionTypeEnum.Menu).ToList(); //节点的名称为菜单管理 DtreeData node = new DtreeData { Title = "菜单管理", Id = "0", //定义树节点的子节点 Children = new List <DtreeData>() }; //遍历info中的list,目的是找到list中的父对象。list储存所有的对象(包括父对象,子对象,子对象的子对象等等) for (var i = 0; i < sysActions.Count(); i++) { SysAction o = sysActions[i]; //当对象的父类id为0的时候,说明这个是一个父对象 if (o.ParentId == 0) { //定义一个新的easyUI树节点 DtreeData c = new DtreeData(); //节点的id就是这个父对象的id c.Id = o.Id.ToString(); //节点的名称就是这个父对象的名称 c.Title = o.Name; //获取父对象下的子对象 GetMenuChild(c, o, sysActions); //将这个父对象放入node之中(node相当于爷爷对象0_0) node.Children.Add(c); } } List <DtreeData> list = new List <DtreeData> { node }; return(list); }