Example #1
0
        /// <summary>
        /// 生成菜单树。
        /// </summary>
        /// <param name="dtMenus"></param>
        /// <param name="parentID"></param>
        /// <param name="nodes"></param>
        void ResolveMenuTree(string parentID, FineUI.TreeNodeCollection nodes)
        {
            //分组。
            var groupList = NavigationProxy.Instance
                            .GetGroupList(parentID)
                            .Where(p => (p.Attributes & 0x0008) == 0x0008).ToList();

            foreach (var vGroup in groupList)
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                nodes.Add(node);
                node.Expanded         = true;
                node.ToolTip          = vGroup.Description;
                node.Text             = vGroup.Name;
                node.EnableClickEvent = true;
                //node.IconUrl = "~/res/icon/folder.png";
                this.ResolveMenuTree(vGroup.ID, node.Nodes);
            }

            //功能
            var moduleList = NavigationProxy.Instance.GeModuleList(parentID);

            foreach (var vModule in moduleList)
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                nodes.Add(node);
                node.Expanded = true;
                node.ToolTip  = vModule.Description;
                node.Text     = vModule.Name;
                node.IconUrl  = "~/res/icon/tag_blue.png";
                if (!String.IsNullOrEmpty(vModule.Url))
                {
                    node.EnableClickEvent = false;
                    node.NavigateUrl      = ResolveUrl(vModule.Url);
                }
            }
        }
Example #2
0
        /// <summary>
        /// 生成菜单树
        /// </summary>
        /// <param name="menus"></param>
        /// <param name="parentMenuId"></param>
        /// <param name="nodes"></param>
        private int ResolveMenuTree(List <SYS_MENUSModel> menus, SYS_MENUSModel parentMenu, FineUI.TreeNodeCollection nodes)
        {
            int count = 0;

            foreach (var menu in menus.Where(m => m.Parent == parentMenu))
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                nodes.Add(node);
                count++;

                node.Text    = menu.Name;
                node.IconUrl = menu.ImageUrl;
                if (!String.IsNullOrEmpty(menu.NavigateUrl))
                {
                    node.EnableClickEvent = false;
                    node.NavigateUrl      = ResolveUrl(menu.NavigateUrl);
                    //node.OnClientClick = String.Format("addTab('{0}','{1}','{2}')", node.NodeID, ResolveUrl(menu.NavigateUrl), node.Text.Replace("'", ""));
                }

                if (menu.IsTreeLeaf)
                {
                    node.Leaf = true;

                    // 如果是叶子节点,但是不是超链接,则是空目录,删除
                    if (String.IsNullOrEmpty(menu.NavigateUrl))
                    {
                        nodes.Remove(node);
                        count--;
                    }
                }
                else
                {
                    //node.SingleClickExpand = true;

                    int childCount = ResolveMenuTree(menus, menu, node.Nodes);

                    // 如果是目录,但是计算的子节点数为0,可能目录里面的都是空目录,则要删除此父目录
                    if (childCount == 0 && String.IsNullOrEmpty(menu.NavigateUrl))
                    {
                        nodes.Remove(node);
                        count--;
                    }
                }
                // }
            }

            return(count);
        }
Example #3
0
        void ResolveOrganTree(List <Organization> dataList, string parentID, FineUI.TreeNodeCollection nodes)
        {
            List <Organization> vList = null;

            if (string.IsNullOrEmpty(parentID) || parentID == Guid.Empty.ToString())
            {
                vList = dataList.Where(p => p.ParentID == parentID || p.ParentID == Guid.Empty.ToString()).ToList();
            }
            else
            {
                vList = dataList.Where(p => p.ParentID == parentID).ToList();
            }

            foreach (var vItem in vList)
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                node.NodeID           = vItem.Guid.ToString();
                node.Text             = vItem.Name;
                node.EnableClickEvent = true;
                nodes.Add(node);
                this.ResolveOrganTree(dataList, vItem.Guid, node.Nodes);
            }
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dataList"></param>
        /// <param name="parentID"></param>
        /// <param name="attributes"></param>
        /// <param name="nodes"></param>
        void ResolveGroupTree(List <NavigateGroup> dataList, string parentID, int attributes, FineUI.TreeNodeCollection nodes)
        {
            List <NavigateGroup> vList = dataList.Where(p => (p.Attributes & attributes) == attributes).ToList();

            if (string.IsNullOrEmpty(parentID) || parentID == Guid.Empty.ToString())
            {
                vList = vList.Where(p => p.ParentID == parentID || p.ParentID == Guid.Empty.ToString()).ToList();
            }
            else
            {
                vList = vList.Where(p => p.ParentID == parentID).ToList();
            }

            foreach (var vItem in vList)
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                node.NodeID           = vItem.ID;
                node.Text             = vItem.Name;
                node.EnableClickEvent = true;
                node.EnableCheckBox   = false;
                nodes.Add(node);
                this.ResolveGroupTree(dataList, vItem.ID, attributes, node.Nodes);
            }
        }
Example #5
0
        /// <summary>递归生成菜单树</summary>
        void BuildTree(List <DAL.Menu> menus, DAL.Menu parentMenu, FineUI.TreeNodeCollection nodes)
        {
            foreach (var menu in menus.Where(m => m.Parent == parentMenu).Where(t => t.Visible == true))
            {
                FineUI.TreeNode node = new FineUI.TreeNode();
                nodes.Add(node);
                node.Text     = menu.Name;
                node.IconUrl  = menu.ImageUrl;
                node.Expanded = menu.IsOpen && !menu.IsTreeLeaf;
                if (!String.IsNullOrEmpty(menu.NavigateUrl))
                {
                    node.NavigateUrl = ResolveUrl(menu.NavigateUrl);
                }

                if (menu.IsTreeLeaf)
                {
                    node.Leaf = true;
                }
                else
                {
                    BuildTree(menus, menu, node.Nodes);
                }
            }
        }