private void SetFuncChildren(MenuTreeNodeDto pNode, IEnumerable <Sys_Function> funcs, IEnumerable <Sys_Menu_Function> menuFunc) { var subMenuFuncs = menuFunc.Where(mf => mf.MenuID == pNode.id).ToList(); if (subMenuFuncs.Count == 0) { return; } var children = new List <MenuTreeNodeDto>(); pNode.children = children; pNode.isLeaf = false; subMenuFuncs.ForEach(mf => { var node = new MenuTreeNodeDto(); node.id = mf.FunctionID; var func = funcs.SingleOrDefault(f => f.ID == mf.FunctionID); node.label = func == null ? "" : func.Name; node.isLeaf = true; node.Number = func == null ? 0 : func.Number ?? 0; children.Add(node); }); pNode.children = children.OrderBy(n => n.Number).ToList(); }
private void SetNodeChildren(IEnumerable <Sys_Menu> menus, string parentID, MenuTreeNodeDto pNode) { var subMenus = menus.Where(m => m.ParentID == parentID).ToList(); if (subMenus.Count > 0) { var children = new List <MenuTreeNodeDto>(); pNode.children = children; subMenus.ForEach(m => { var node = new MenuTreeNodeDto(); node.id = m.ID; node.label = m.Name; node.isLeaf = !m.IsParent ?? true; node.url = m.Url; children.Add(node); SetNodeChildren(menus, m.ID, node); }); } }
private List <MenuTreeNodeDto> GenMenuTree(IEnumerable <Sys_Menu> menus) { var nodes = new List <MenuTreeNodeDto>(); if (menus == null) { return(nodes); } var rootsMenu = menus.Where(m => m.ParentID == "0").ToList(); rootsMenu.ForEach(m => { var node = new MenuTreeNodeDto(); node.id = m.ID; node.label = m.Name; node.isLeaf = !m.IsParent ?? true; node.url = m.Url; nodes.Add(node); SetNodeChildren(menus, m.ID, node); }); return(nodes); }
private void SetNodeChecked(MenuTreeNodeDto pNode, IEnumerable <Sys_Role_Menu_Function> authMenuFuncs) { if (pNode.children != null && pNode.children.Count > 0) { var isLeaf = pNode.children.Any(x => x.isLeaf); if (isLeaf) { pNode.children.ForEach(subNode => { var count = authMenuFuncs.Count(x => x.MenuID == pNode.id && x.FunctionID == subNode.id); subNode.@checked = count > 0; }); } else { pNode.children.ForEach(subNode => { SetNodeChecked(subNode, authMenuFuncs); }); } } }
private void BuildMenuHtml(StringBuilder sb, MenuTreeNodeDto menu) { if (menu.children != null && menu.children.Count > 0) { sb.Append("<dl class=\"layui-nav-child\">"); menu.children.ForEach(subMenu => { sb.Append("<dd>"); if (subMenu.isLeaf) { sb.Append(string.Format("<a href=\"#\" lay-id =\"{0}\" tab-text=\"{1}\">{1}</a>", subMenu.url, subMenu.label)); } else { sb.Append(string.Format("<a href=\"#\">{0}</a>", subMenu.label)); BuildMenuHtml(sb, subMenu); } sb.Append("</dd>"); }); sb.Append("</dl>"); } }
private void SetNodeChildren(IEnumerable <Sys_Menu> menus, IEnumerable <Sys_Function> funcs, IEnumerable <Sys_Menu_Function> menuFuncs, MenuTreeNodeDto pNode) { var subMenus = menus.Where(m => m.ParentID == pNode.id).ToList(); if (subMenus.Count > 0) { var children = new List <MenuTreeNodeDto>(); pNode.children = children; subMenus.ForEach(m => { var node = new MenuTreeNodeDto(); node.id = m.ID; node.label = m.Name; node.isLeaf = !m.IsParent ?? true; children.Add(node); SetNodeChildren(menus, funcs, menuFuncs, node); }); } else { SetFuncChildren(pNode, funcs, menuFuncs); } }