Exemple #1
0
        private TreeNodeCollection BuildTree(List <NavMenu> menus, string rootName)
        {
            TreeNodeCollection nodes = new TreeNodeCollection();

            TreeNode root = new TreeNode();

            root.Text = rootName;
            root.Icon = Icon.Folder;

            nodes.Add(root);

            if (menus == null || menus.Count == 0)
            {
                return(nodes);
            }

            List <string> roleAssignedmenuIDs = SystemMenuWrapper.GetRoleAssignedMenuIDs(SystemRoleWrapper.FindById(RoleID));

            foreach (var menu in menus)
            {
                TreeNode mainNode = new TreeNode();
                mainNode.Text   = menu.Name;
                mainNode.NodeID = menu.Id;
                WebUIHelper.SetIcon(menu.Icon, menu.IsCategory, mainNode);
                mainNode.CustomAttributes.Add(new ConfigItem("IsGroup", "1", ParameterMode.Value));
                mainNode.CustomAttributes.Add(new ConfigItem("MenuID", menu.Id, ParameterMode.Value));

                if (roleAssignedmenuIDs.Contains(menu.Id.ToString()))
                {
                    mainNode.Checked = ThreeStateBool.True;
                }
                else
                {
                    mainNode.Checked = ThreeStateBool.False;
                }
                GenerateSubTreeNode(mainNode, menu, roleAssignedmenuIDs);
                root.Nodes.Add(mainNode);
            }



            //foreach (TreeNodeBase treeNodeBase in nodes)
            //{
            //    treeNodeBase.Checked = ThreeStateBool.False;
            //}



            return(nodes);
        }
        private void LinqTree(List <SystemMenuWrapper> list, Ext.Net.TreeNode tnd, int mid)
        {
            if (list == null)
            {
                list = SystemMenuWrapper.FindAll();
            }
            IEnumerable <SystemMenuWrapper> result = null;

            if (mid == 0)
            {
                result = list.Where(menu => menu.ParentMenuID == null);
            }
            else
            {
                result = list.Where(delegate(SystemMenuWrapper menu)
                {
                    if (menu.ParentMenuID == null)
                    {
                        return(false);
                    }
                    else
                    {
                        if (menu.ParentMenuID.MenuID == mid)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                });
            }
            List <string> menuString = SystemMenuWrapper.GetRoleAssignedMenuIDs(SystemRoleWrapper.FindById(RoleID));

            foreach (SystemMenuWrapper m in result)
            {
                Ext.Net.TreeNode tn = new Ext.Net.TreeNode();
                tn.Qtip = m.MenuID.ToString();;
                tn.Text = m.MenuName;

                if (menuString.Count > 0)
                {
                    tn.Checked = (menuString.Exists(id => id.ToString() == tn.Qtip)) ? ThreeStateBool.True : ThreeStateBool.False;
                }
                else
                {
                    tn.Checked = ThreeStateBool.False;
                }
                tnd.Nodes.Add(tn);

                if (list.Exists(delegate(SystemMenuWrapper menu)
                {
                    if (menu.ParentMenuID == null)
                    {
                        return(false);
                    }
                    else
                    {
                        if (menu.ParentMenuID.MenuID == m.MenuID)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }))
                {
                    LinqTree(list, tn, m.MenuID);
                }
            }
        }