示例#1
0
        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;
        }
示例#2
0
        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);
            }
        }