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); } } }