Пример #1
0
        private Tree InitTreeMenu()
        {
            Tree treeMenu = new Tree();

            treeMenu.ID           = "treeMenu";
            treeMenu.EnableArrows = true;
            treeMenu.ShowBorder   = false;
            treeMenu.ShowHeader   = false;
            treeMenu.EnableIcons  = false;
            treeMenu.AutoScroll   = true;
            Region2.Items.Add(treeMenu);

            int user_id = int.Parse(Session["UserID"].ToString());

            Web_Node node1 = new Web_Node();

            node1.NAME       = "Web";
            node1.INDEX_     = 2;
            node1.PINDEX     = 1;
            node1.SPECIES    = 8;
            node1.SPECIES_ID = 1;
            node1.CS         = 1;
            FineUI.TreeNode tnode = new FineUI.TreeNode();
            tnode.Text        = node1.NAME;
            tnode.NodeID      = node1.INDEX_.ToString();
            tnode.NavigateUrl = "javascript:void(0)";
            TreeHelper_Web.BuildUserWebTree(user_id, tnode, treeMenu);

            return(treeMenu);
        }
Пример #2
0
        private Accordion InitAccordionMenu()
        {
            int UserID = int.Parse(Session["UserID"].ToString());

            Accordion accordionMenu = new Accordion();

            accordionMenu.ID         = "accordionMenu";
            accordionMenu.EnableFill = true;
            accordionMenu.ShowBorder = false;
            accordionMenu.ShowHeader = false;
            Region2.Items.Add(accordionMenu);

            int user_id = int.Parse(Session["UserID"].ToString());

            Web_Node node1 = new Web_Node();

            node1.NAME       = "Web";
            node1.INDEX_     = 2;
            node1.PINDEX     = 1;
            node1.SPECIES    = 8;
            node1.SPECIES_ID = 1;
            node1.CS         = 1;
            FineUI.TreeNode tnode = new FineUI.TreeNode();
            tnode.Text        = node1.NAME;
            tnode.NodeID      = node1.INDEX_.ToString();
            tnode.NavigateUrl = "javascript:void(0)";

            TreeHelper_Web.BuildUserWebTree(user_id, tnode, accordionMenu);
            return(accordionMenu);
        }
Пример #3
0
        /// <summary>
        /// 判断一个节点是否为另一个节点的子孙节点
        /// </summary>
        /// <param name="ParentType"></param>
        /// <param name="ParentID"></param>
        /// <param name="ChildType"></param>
        /// <param name="ChildID"></param>
        /// <returns></returns>
        public bool IsDescendant(int ParentType, int ParentID, int ChildType, int ChildID)
        {
            Web_Node child = GetModel(ChildType, ChildID);

            if (child == null)
            {
                return(false);
            }
            Web_Node parent = GetModel(ParentType, ParentID);

            if (parent == null)
            {
                return(false);
            }
            while (true)
            {
                if (child.PINDEX == parent.INDEX_)
                {
                    return(true);
                }
                if (child.PINDEX <= 0)
                {
                    break;
                }
                ;
                child = GetModel(child.PINDEX);
            }
            return(false);
        }
Пример #4
0
 public static void tree_NodeCommand(object sender, FineUI.TreeCommandEventArgs e)
 {
     if (!e.Node.NavigateUrl.ToString().Equals(""))
     {
         #region 向数据库中写入菜单的访问频次和最后一次访问时间
         Web_NodeBll bll   = new Web_NodeBll();
         Web_Node    model = bll.GetModel(int.Parse(e.NodeID));
         bll.Update2(model);
         #endregion
     }
 }
Пример #5
0
        /// <summary>
        /// 获得父节点下满足类型范围的所有节点(包括父节点)
        /// </summary>
        /// <param name="ParentIndex"></param>
        /// <param name="FromSpecies"></param>
        /// <param name="EndSpecies"></param>
        /// <returns></returns>
        private List <Web_Node> GetAllNodesByParent(int ParentIndex, int FromSpecies, int EndSpecies, int[] ExceptSpecies)
        {
            List <Web_Node> descendants = new List <Web_Node>();
            Web_Node        ParentNode  = GetModel(ParentIndex);
            int             FromFloor   = ParentNode.CS;
            //查询可能的子孙节点
            string          strWhere = "SPECIES>=" + FromSpecies + " AND SPECIES<=" + EndSpecies + " AND CS>=" + FromFloor;
            List <Web_Node> probably = GetList(strWhere);

            //寻找子节点
            foreach (Web_Node node in probably)
            {
                //if (node.CS == FromFloor )
                if (node.CS == FromFloor && node.INDEX_ == ParentNode.INDEX_)
                {
                    //过滤掉特殊类型
                    if (ExceptSpecies != null)
                    {
                        bool bExists = false;
                        foreach (int n in ExceptSpecies)
                        {
                            if (n == node.SPECIES)
                            {
                                bExists = true;
                                break;
                            }
                        }
                        if (bExists)
                        {
                            continue;
                        }
                    }
                    descendants.Add(node);
                }
                else
                {
                    for (int i = descendants.Count - 1; i >= 0; i--)
                    {
                        if (node.PINDEX == descendants[i].INDEX_)
                        {
                            descendants.Add(node);
                            break;
                        }
                    }
                }
            }
            return(descendants);
        }
Пример #6
0
        public String GetObjectPath(int species_type, int SpeciesID)  //获得索引节点的路径
        {
            Web_Node node = GetModel(species_type, SpeciesID);

            if (node == null)
            {
                return(null);
            }
            string path = node.NAME;

            while (node.PINDEX > 0)
            {
                node = GetModel(node.PINDEX);
                path = node.NAME + "\\" + path;
            }
            return(path);
        }
Пример #7
0
        public String GetObjectPath(int index)  //获得索引节点的路径
        {
            Web_Node node = GetModel(index);

            if (node == null)
            {
                return(null);
            }
            string path = node.NAME;

            while (node.PINDEX > 0)
            {
                node = GetModel(node.PINDEX);
                path = node.NAME + "\\" + path;
            }
            return(path);
        }
Пример #8
0
        /// <summary>
        /// 判断一个节点是否为另一个节点的子孙节点
        /// </summary>
        /// <param name="ParentIndex"></param>
        /// <param name="ChildIndex"></param>
        /// <returns></returns>

        public bool IsDescendant(int ParentIndex, int ChildIndex)
        {
            Web_Node child = GetModel(ChildIndex);

            if (child == null)
            {
                return(false);
            }
            while (true)
            {
                if (child.PINDEX == ParentIndex)
                {
                    return(true);
                }
                if (child.PINDEX <= 0)
                {
                    break;
                }
                ;
                child = GetModel(child.PINDEX);
            }
            return(false);
        }
Пример #9
0
        public List <Web_Node> GetNodesByParent(int ParentIndex, bool Recursive)  //获得父节点下的所有节点
        {
            //Recursive=false时仅返回儿子节点
            if (!Recursive)
            {
                return(GetList("PINDEX=" + ParentIndex));
            }
            //下面完成查询所有子孙节点
            List <Web_Node> descendants = new List <Web_Node>();
            //计算子孙数据的筛选范围
            Web_Node ParentNode  = GetModel(ParentIndex);
            int      FromSpecies = 0;
            int      EndSpecies  = Web_Node.SPECIES_MAX;

            switch (ParentNode.SPECIES)
            {
            case Web_Node.SPECIES_ROOT_NODE: break;

            case Web_Node.SPECIES_CHARA_FOLDER:
                FromSpecies = Web_Node.SPECIES_CHARA_FOLDER;
                EndSpecies  = Web_Node.SPECIES_TAG;
                break;

            case Web_Node.SPECIES_CHARA_FILE:
                FromSpecies = Web_Node.SPECIES_CHARA_FILE;
                EndSpecies  = Web_Node.SPECIES_TAG;
                break;

            case Web_Node.SPECIES_WFNAME:
                FromSpecies = Web_Node.SPECIES_WFNAME;
                EndSpecies  = Web_Node.SPECIES_WFACTIVITY;
                break;

            case Web_Node.SPECIES_WEB_FOLDER:
                FromSpecies = Web_Node.SPECIES_WEB_FOLDER;
                EndSpecies  = Web_Node.SPECIES_WEB;
                break;

            case Web_Node.SPECIES_ROLE:
                FromSpecies = Web_Node.SPECIES_ROLE;
                EndSpecies  = Web_Node.SPECIES_USER;
                break;

            case Web_Node.SPECIES_DEVICE_FOLDER:
                FromSpecies = Web_Node.SPECIES_DEVICE_FOLDER;
                EndSpecies  = Web_Node.SPECIES_DEVICE;
                break;

            case Web_Node.SPECIES_CHARA_VARIABLE:
            case Web_Node.SPECIES_CHARA_ARRTIBUTE:
            case Web_Node.SPECIES_TAG:
            case Web_Node.SPECIES_WFACTIVITY:
            case Web_Node.SPECIES_WEB:
            case Web_Node.SPECIES_STATION:
            case Web_Node.SPECIES_USER:
            case Web_Node.SPECIES_DEVICE:
                return(descendants);
            }
            //查询结果
            return(GetNodesByParent(ParentIndex, FromSpecies, EndSpecies, null));
        }
Пример #10
0
    /// <summary>
    /// 构建RootNode下用户有权限的Web树
    /// </summary>
    /// <param name="UserID">用户ID</param>
    /// <param name="RootNode">要建子树的根节点</param>
    public static void BuildUserWebTree(int UserID, TreeNode RootNode, Tree tview1)
    {
        if (RootNode == null)
        {
            return;
        }
        tview1.NodeCommand += tree_NodeCommand;
        Web_NodeBll     node_bll = new Web_NodeBll();
        List <Web_Node> nodes    = new List <Web_Node>();

        nodes = node_bll.GetWebTreeByUser(UserID);

        List <TreeNode> pnodelist = new List <TreeNode>();

        foreach (Web_Node node in nodes)
        {
            //找父节点
            TreeNode pnode = RootNode;
            for (int i = pnodelist.Count - 1; i >= 0; i--)
            {
                if (Convert.ToInt32(pnodelist[i].NodeID) == node.PINDEX)
                {
                    pnode = pnodelist[i];
                    break;
                }
            }
            //建节点
            if (node.PINDEX == 2)
            {
                //if (node.NAME.Equals(ConfigurationManager.AppSettings["SiteName"]) || node.NAME.Equals("系统管理") || node.NAME.Equals("我的信息中心"))
                //{
                TreeNode cnode = new TreeNode();
                cnode.Text              = node.NAME;
                cnode.NodeID            = node.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                tview1.Nodes.Add(cnode);
                pnodelist.Add(cnode);
                //}
            }
            else if (node.CS > 2 && pnode == RootNode)
            {
                Web_NodeBll     nbll     = new Web_NodeBll();
                List <Web_Node> templist = new List <Web_Node>();
                templist.Add(node);
                Web_Node t1 = node;
                while (t1.CS > 3)
                {
                    t1 = nbll.GetModel(t1.PINDEX);
                    if (t1.PINDEX == 2)
                    {
                        //if (t1.NAME.Equals(ConfigurationManager.AppSettings["SiteName"]) || t1.NAME.Equals("系统管理") || t1.NAME.Equals("我的信息中心"))
                        //{
                        templist.Add(t1);
                        //}
                    }
                    else
                    {
                        templist.Add(t1);
                    }
                }
                TreeNode cnode = new TreeNode();
                cnode.Text              = t1.NAME;
                cnode.NodeID            = t1.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                bool tep = false;
                for (int i = pnodelist.Count - 1; i >= 0; i--)
                {
                    if (Convert.ToInt32(pnodelist[i].NodeID) == t1.INDEX_)
                    {
                        pnode = pnodelist[i];
                        tep   = true;
                        break;
                    }
                }
                if (!tep)
                {
                    //if (cnode.Text.Equals(ConfigurationManager.AppSettings["SiteName"]) || cnode.Text.Equals("系统管理") || cnode.Text.Equals("我的信息中心"))
                    //{
                    tview1.Nodes.Add(cnode);
                    pnodelist.Add(cnode);
                    pnode = cnode;

                    //}
                }

                for (int i = templist.Count - 2; i >= 0; i--)
                {
                    TreeNode testnode = new TreeNode();
                    testnode.Text           = templist[i].NAME;
                    testnode.NodeID         = templist[i].INDEX_.ToString();
                    cnode.EnableExpandEvent = true;
                    if (templist[i].BH != "")
                    {
                        testnode.IconUrl           = "~/images/filetype/vs_aspx.png";
                        testnode.NavigateUrl       = templist[i].BH;
                        testnode.ToolTip           = templist[i].NAME;
                        testnode.EnableExpandEvent = true;
                    }
                    //if (testnode.Text.Equals("生产监控") || testnode.Text.Equals("系统管理") || testnode.Text.Equals("我的信息中心"))
                    //{
                    pnode.Nodes.Add(testnode);
                    pnodelist.Add(testnode);
                    pnode = testnode;
                    //}
                }
            }
            else
            {
                TreeNode cnode = new TreeNode();
                cnode.Text              = node.NAME;
                cnode.NodeID            = node.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                if (node.BH != "")
                {
                    cnode.IconUrl           = "~/images/filetype/vs_aspx.png";
                    cnode.NavigateUrl       = node.BH;
                    cnode.ToolTip           = node.NAME;
                    cnode.EnableExpandEvent = true;
                }
                //if (cnode.Text.Equals("生产监控") || cnode.Text.Equals("系统管理") || cnode.Text.Equals("我的信息中心"))
                //{
                pnode.Nodes.Add(cnode);
                pnodelist.Add(cnode);
                //}
            }
        }
    }
Пример #11
0
    public static void BuildUserWebTree(int UserID, TreeNode RootNode, Accordion acc)
    {
        if (RootNode == null)
        {
            return;
        }

        Tree tview1 = new Tree();

        tview1.NodeCommand += tree_NodeCommand;

        #region 获取用户所有的功能节点
        Web_NodeBll     node_bll = new Web_NodeBll();
        List <Web_Node> nodes    = new List <Web_Node>();
        nodes = node_bll.GetWebTreeByUser(UserID);

        List <TreeNode> pnodelist = new List <TreeNode>();
        foreach (Web_Node node in nodes)
        {
            //找父节点
            TreeNode pnode = RootNode;
            for (int i = pnodelist.Count - 1; i >= 0; i--)
            {
                if (Convert.ToInt32(pnodelist[i].NodeID) == node.PINDEX)
                {
                    pnode = pnodelist[i];
                    break;
                }
            }
            //建节点
            if (node.PINDEX == 2)
            {
                //if (node.NAME.Equals(ConfigurationManager.AppSettings["SiteName"]) || node.NAME.Equals("系统管理") || node.NAME.Equals("我的信息中心"))
                //{
                TreeNode cnode = new TreeNode();
                cnode.Text              = node.NAME;
                cnode.NodeID            = node.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                tview1.Nodes.Add(cnode);
                pnodelist.Add(cnode);
                //}
            }
            else if (node.CS > 2 && pnode == RootNode)
            {
                Web_NodeBll     nbll     = new Web_NodeBll();
                List <Web_Node> templist = new List <Web_Node>();
                templist.Add(node);
                Web_Node t1 = node;
                while (t1.CS > 3)
                {
                    t1 = nbll.GetModel(t1.PINDEX);
                    if (t1.PINDEX == 2)
                    {
                        //if (t1.NAME.Equals(ConfigurationManager.AppSettings["SiteName"]) || t1.NAME.Equals("系统管理") || t1.NAME.Equals("我的信息中心"))
                        //{
                        templist.Add(t1);
                        //}
                    }
                    else
                    {
                        templist.Add(t1);
                    }
                }
                TreeNode cnode = new TreeNode();
                cnode.Text              = t1.NAME;
                cnode.NodeID            = t1.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                bool tep = false;
                for (int i = pnodelist.Count - 1; i >= 0; i--)
                {
                    if (Convert.ToInt32(pnodelist[i].NodeID) == t1.INDEX_)
                    {
                        pnode = pnodelist[i];
                        tep   = true;
                        break;
                    }
                }
                if (!tep)
                {
                    //if (cnode.Text.Equals(ConfigurationManager.AppSettings["SiteName"]) || cnode.Text.Equals("系统管理") || cnode.Text.Equals("我的信息中心"))
                    //{
                    tview1.Nodes.Add(cnode);
                    pnodelist.Add(cnode);
                    pnode = cnode;

                    //}
                }

                for (int i = templist.Count - 2; i >= 0; i--)
                {
                    TreeNode testnode = new TreeNode();
                    testnode.Text           = templist[i].NAME;
                    testnode.NodeID         = templist[i].INDEX_.ToString();
                    cnode.EnableExpandEvent = true;
                    if (templist[i].BH != "")
                    {
                        testnode.NavigateUrl      = templist[i].BH;
                        testnode.IconUrl          = "~/images/filetype/vs_aspx.png";
                        testnode.EnableClickEvent = true;
                    }
                    //if (testnode.Text.Equals("生产监控") || testnode.Text.Equals("系统管理") || testnode.Text.Equals("我的信息中心"))
                    //{
                    pnode.Nodes.Add(testnode);
                    pnodelist.Add(testnode);
                    pnode = testnode;
                    //}
                }
            }
            else
            {
                TreeNode cnode = new TreeNode();
                cnode.Text              = node.NAME;
                cnode.NodeID            = node.INDEX_.ToString();
                cnode.EnableExpandEvent = true;
                if (node.BH != "")
                {
                    cnode.NavigateUrl      = node.BH;
                    cnode.IconUrl          = "~/images/filetype/vs_aspx.png";
                    cnode.EnableClickEvent = true;
                }
                //if (cnode.Text.Equals("生产监控") || cnode.Text.Equals("系统管理") || cnode.Text.Equals("我的信息中心"))
                //{
                pnode.Nodes.Add(cnode);
                pnodelist.Add(cnode);
                //}
            }
        }
        #endregion

        TreeNodeCollection tnc = tview1.Nodes;
        Web_NodeBll        bll = new Web_NodeBll();

        UserBll userbll = new UserBll();

        User uu = userbll.GetModel(UserID);

        if (uu.NAME.ToUpper().Equals("ADMIN"))
        {
            for (int i = 0; i < tnc.Count; i++)
            {
                Web_Node wn = bll.GetModel(int.Parse(tnc[i].NodeID));

                if (wn.PINDEX == 2 && !wn.NAME.Equals("长距离特高压GIL可靠性分析"))
                {
                    AccordionPane pane = new AccordionPane();
                    pane.Title = wn.NAME;
                    pane.ID    = wn.INDEX_.ToString();
                    Tree tree = new Tree();
                    tree.NodeCommand += tree_NodeCommand;
                    tree.Title        = wn.NAME;
                    tree.ShowHeader   = false;
                    tree.ShowBorder   = false;

                    TreeNodeCollection tnc2 = tnc[i].Nodes;

                    foreach (TreeNode nn in tnc2)
                    {
                        if (nn.NavigateUrl.Equals(""))
                        {
                            nn.Icon = Icon.Folder;
                        }
                        else
                        {
                            nn.IconUrl          = "~/images/filetype/vs_aspx.png";
                            nn.EnableClickEvent = true;
                        }
                        tree.Nodes.Add(nn);
                    }

                    pane.Items.Add(tree);
                    acc.Items.Add(pane);
                }
            }
        }
        else
        {
            for (int i = 0; i < tnc.Count; i++)
            {
                Web_Node wn = bll.GetModel(int.Parse(tnc[i].NodeID));

                if (wn.PINDEX == 2)
                {
                    AccordionPane pane = new AccordionPane();
                    pane.Title = wn.NAME;
                    pane.ID    = wn.INDEX_.ToString();
                    Tree tree = new Tree();
                    tree.NodeCommand += tree_NodeCommand;
                    tree.Title        = wn.NAME;
                    tree.ShowHeader   = false;
                    tree.ShowBorder   = false;

                    TreeNodeCollection tnc2 = tnc[i].Nodes;

                    foreach (TreeNode nn in tnc2)
                    {
                        if (nn.NavigateUrl.Equals(""))
                        {
                            nn.Icon = Icon.Folder;
                        }
                        else
                        {
                            nn.IconUrl          = "~/images/filetype/vs_aspx.png";
                            nn.EnableClickEvent = true;
                        }
                        tree.Nodes.Add(nn);
                    }

                    pane.Items.Add(tree);
                    acc.Items.Add(pane);
                }
            }
        }
    }