using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using ZWL.Common; using System.Data; using System.Text; public partial class Moa_Main : System.Web.UI.Page { public string menus = ""; protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { PublicMethod.CheckSession(); //Response.Write(ZWL.Common.PublicMethod.GetSessionValue("QuanXian")); //设置有权限的项才显示 //设置有权限的项才显示 SetQuanXian(); string param = Request.Params["param"]; if (string.IsNullOrEmpty(param)) { Render(); } else if (param.Contains("M")) { menus = GetChild2(param); } else { menus = GetChild1(param); } } } private void BindTree(TreeNodeCollection Nds, int IDStr) { DataSet MYDT = ZWL.DBUtility.DbHelperSQL.GetDataSet("select * from ERPTreeList where ParentID=" + IDStr.ToString() + " order by PaiXuStr asc,ID asc"); for (int i = 0; i < MYDT.Tables[0].Rows.Count; i++) { TreeNode MenuNode = new TreeNode(); MenuNode.Text = MYDT.Tables[0].Rows[i]["TextStr"].ToString(); MenuNode.Value = MYDT.Tables[0].Rows[i]["ValueStr"].ToString(); MenuNode.ImageToolTip = MYDT.Tables[0].Rows[i]["ParentClass"].ToString(); int strId = int.Parse(MYDT.Tables[0].Rows[i]["ID"].ToString()); MenuNode.ImageUrl = MYDT.Tables[0].Rows[i]["ImageUrlStr"].ToString(); if (MYDT.Tables[0].Rows[i]["NavigateUrlStr"].ToString().Trim().Length <= 0) { MenuNode.SelectAction = TreeNodeSelectAction.Expand; } else { MenuNode.NavigateUrl = MYDT.Tables[0].Rows[i]["NavigateUrlStr"].ToString(); MenuNode.Target = MYDT.Tables[0].Rows[i]["Target"].ToString(); } Nds.Add(MenuNode); BindTree(Nds[Nds.Count - 1].ChildNodes, strId); } } public void SetQuanXian() { //判断权限分配 for (int i = 0; i < this.ListTreeView.Nodes.Count; i++) { for (int j = 0; j < this.ListTreeView.Nodes[i].ChildNodes.Count; j++) { //删除子菜单中的不在权限中的项 for (int k = 0; k < this.ListTreeView.Nodes[i].ChildNodes[j].ChildNodes.Count; k++) { if (PublicMethod.StrIFIn("|" + this.ListTreeView.Nodes[i].ChildNodes[j].ChildNodes[k].Value + "|", ZWL.Common.PublicMethod.GetSessionValue("QuanXian")) == false) { this.ListTreeView.Nodes[i].ChildNodes[j].ChildNodes.Remove(this.ListTreeView.Nodes[i].ChildNodes[j].ChildNodes[k]); k = -1; } } //判断是父节点还是子节点 if (this.ListTreeView.Nodes[i].ChildNodes[j].SelectAction == TreeNodeSelectAction.Expand) { if (this.ListTreeView.Nodes[i].ChildNodes[j].ChildNodes.Count <= 0) { this.ListTreeView.Nodes[i].ChildNodes.Remove(this.ListTreeView.Nodes[i].ChildNodes[j]); j = -1; } } else { if (PublicMethod.StrIFIn("|" + this.ListTreeView.Nodes[i].ChildNodes[j].Value + "|", ZWL.Common.PublicMethod.GetSessionValue("QuanXian")) == false) { this.ListTreeView.Nodes[i].ChildNodes.Remove(this.ListTreeView.Nodes[i].ChildNodes[j]); j = -1; } } } //判断是父节点还是子节点 if (this.ListTreeView.Nodes[i].SelectAction == TreeNodeSelectAction.Expand) { if (this.ListTreeView.Nodes[i].ChildNodes.Count <= 0) { this.ListTreeView.Nodes.Remove(this.ListTreeView.Nodes[i]); i = -1; } } else { if (PublicMethod.StrIFIn("|" + this.ListTreeView.Nodes[i].Value + "|", ZWL.Common.PublicMethod.GetSessionValue("QuanXian")) == false) { this.ListTreeView.Nodes.Remove(this.ListTreeView.Nodes[i]); i = -1; } } } } string GetChild1(string param) { StringBuilder sb = new StringBuilder(); foreach (TreeNode node in this.ListTreeView.Nodes) { if (node.Value.ToString() == param) { if (node.ChildNodes.Count > 0) { sb.Append(RenderChild2(node.ChildNodes)); } break; } } return sb.ToString(); } string GetChild2(string param) { StringBuilder sb = new StringBuilder(); foreach (TreeNode node in this.ListTreeView.Nodes) { foreach (TreeNode nodes in node.ChildNodes) { if (nodes.Value.ToString() == param) { if (nodes.ChildNodes.Count > 0) { sb.Append(RenderChild3(nodes.ChildNodes)); } return sb.ToString(); } } } return sb.ToString(); } protected void Render() { StringBuilder sb = new StringBuilder(); sb.Append(RenderChild1(this.ListTreeView.Nodes)); menus = sb.ToString(); } string RenderChild1(TreeNodeCollection nodes) { StringBuilder sb = new StringBuilder(); foreach (TreeNode node in nodes) { //width=\"16\" height=\"16\" sb.Append("
  • "); sb.Append(""); sb.Append("" + node.Text + ""); sb.Append(""); sb.Append("
  • "); //if (node.ChildNodes.Count > 0) //{ // sb.Append("\n"); //} } return sb.ToString(); } string RenderChild2(TreeNodeCollection nodes) { StringBuilder sb = new StringBuilder(); foreach (TreeNode node in nodes) { if (node.ChildNodes.Count == 0) { sb.Append("
  • "); sb.Append(""); sb.Append("" + node.Text + ""); sb.Append(""); sb.Append("
  • "); } else { sb.Append("
  • "); sb.Append(""); sb.Append("" + node.Text + ""); sb.Append(""); sb.Append("
  • "); sb.Append("\n"); } } return sb.ToString(); } string RenderChild3(TreeNodeCollection nodes) { StringBuilder sb = new StringBuilder(); foreach (TreeNode node in nodes) { sb.Append("
  • "); sb.Append(""); sb.Append("" + node.Text + ""); sb.Append(""); sb.Append("
  • "); } return sb.ToString(); } }