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