public static MenuNode BuildMenu(IEnumerable <IMenuItem> menuItems) { List <TreeNode> listMenu = new List <TreeNode>(); foreach (IMenuItem menuItem in menuItems) { TreeNode m = new TreeNode(); m.Id = menuItem.MenuItemId; m.Name = menuItem.MenuItemName; m.Url = menuItem.MenuItemUrl; if (menuItem.ParentId != 0) { m.Parent = new TreeNode(); m.Parent.Id = menuItem.ParentId; } listMenu.Add(m); } var listMenuItems = ConvertToForest(listMenu); MenuNode root = new MenuNode(); AddNodeToTree(root, listMenuItems); return(root); //List<MenuNode> returnList = new List<MenuNode>(); //foreach (MenuNode menuNode in root.ChildNodes) //{ // returnList.Add(menuNode); //} //return returnList; }
public static void AddNodeToTree(MenuNode treeNode, IList <TreeNode> menuItems) { foreach (var menuItem in menuItems) { MenuNode node = new MenuNode(); node.Url = ((TreeNode)menuItem).Url; node.Title = ((TreeNode)menuItem).Name; node.IsClickable = true; AddNodeToTree(node, menuItem.Children); treeNode.AddNode(node); } }