//传值展开相应组织架构节点 if (id != "") { foreach (TreeNode tn in treeTeam.Nodes) { if (expColl(tn, id)) { tn.Expanded = true; break; } tn.Expanded = false; } } //组织架构爷节点 private void GrandFatherTree() { try { int recordCount = 0; Teams teams = new Teams(); MainDB.Dbo.SelectPageWithTop(teams, "TeamLevel = 0", "order by TeamOrder,InputDate desc", 1000, 1, out recordCount); for (int i = 0; i < teams.Count; i++) { TreeNode mynode = new TreeNode(); mynode.Text = teams[i].TeamName; mynode.Value = teams[i].TeamID; mynode.ImageUrl = "~/Content/images/ico_tree1.gif"; mynode.SelectAction = TreeNodeSelectAction.Expand; mynode.ShowCheckBox = true; if (!Request.Url.ToString().Contains("&no=")) { mynode.NavigateUrl = Request.Url + "&no=" + teams[i].TeamOrder.ToString() + "&tid=" + mynode.Value; } else { string str = Request.Url.ToString(); mynode.NavigateUrl = str.Substring(0, str.IndexOf("&no=")) + "&no=" + teams[i].TeamOrder.ToString() + "&tid=" + mynode.Value; } mynode.Expanded = false; treeTeam.Nodes.Add(mynode); SonTree(mynode); FatherTree(mynode); } } catch { throw; } } //组织架构父节点 private void FatherTree(TreeNode fatherNode) { try { int recordCount = 0; Teams teams = new Teams(); MainDB.Dbo.SelectPageWithTop(teams, "ParentTeamID = '" + fatherNode.Value + "'", "order by TeamOrder,InputDate desc", 1000, 1, out recordCount); for (int i = 0; i < teams.Count; i++) { TreeNode mynode = new TreeNode(); mynode.Text = teams[i].TeamName; mynode.Value = teams[i].TeamID.ToString(); mynode.SelectAction = TreeNodeSelectAction.Expand; mynode.ImageUrl = "~/Content/images/ico_tree1.gif"; mynode.Expanded = false; mynode.ShowCheckBox = true; if (!Request.Url.ToString().Contains("&no=")) { mynode.NavigateUrl = Request.Url + "&no=" + teams[i].TeamOrder.ToString() + "&tid=" + mynode.Value; } else { string str = Request.Url.ToString(); mynode.NavigateUrl = str.Substring(0, str.IndexOf("&no=")) + "&no=" + teams[i].TeamOrder.ToString() + "&tid=" + mynode.Value; } fatherNode.ChildNodes.Add(mynode); SonTree(mynode); } } catch { throw; } } //组织架构子节点 private void SonTree(TreeNode sonNode) { try { List<TeamMember> list = new List<TeamMember>(); int recordCount = 0; TeamMembers teammembers = new TeamMembers(); MainDB.Dbo.SelectPageWithTop(teammembers, "FK_TeamID = '" + sonNode.Value + "'", "order by OrderID,TeamMemberName ", 10000, 1, out recordCount); list.AddRange(teammembers.Where(p => p.AdminState == (int)EnumAdminState.组长)); list.AddRange(teammembers.Where(p => p.AdminState.GetValueOrDefault(0) == (int)EnumAdminState.组员)); for (int i = 0; i < list.Count; i++) { TreeNode mynode = new TreeNode(); mynode.Text = list[i].TeamMemberName; mynode.Value = list[i].FK_IdentityID.ToString(); //管理员 if (list[i].AdminState == (int)EnumAdminState.组长) { mynode.ImageUrl = "../Content/images/peason.gif"; mynode.ToolTip = "组长"; } else { mynode.ImageUrl = "../Content/images/ico_tree2.gif"; //普通组员 mynode.ToolTip = "普通组员"; } mynode.Expanded = false; mynode.NavigateUrl = "../Team/Team_Mrg.aspx?id=" + mynode.Value; mynode.Target = "_self"; sonNode.ChildNodes.Add(mynode); SonTree(mynode); } } catch { throw; } } /// <summary> /// 展开树节点 /// </summary> /// <param name="tnode">节点Value</param> /// <param name="id">参数</param> /// <returns></returns> private bool expColl(TreeNode tnode, string id) { bool canExp = false; if (tnode.ChildNodes.Count == 0) return false; tnode.Expand(); foreach (TreeNode cnode in tnode.ChildNodes) { if (cnode.Value.Trim().ToLower() == id.Trim().ToLower()) { cnode.Expanded = true; canExp = true; cnode.Selected = true; treeTeam.SelectedNodeStyle.BackColor = System.Drawing.Color.BurlyWood; treeFavorite.SelectedNodeStyle.BackColor = System.Drawing.Color.BurlyWood; break; } if (expColl(cnode, id)) { canExp = true; break; } } if (!canExp) { tnode.Collapse(); } return canExp; }