using System; using System.Collections.Generic; using System.Linq; using System.Text; using Stone.Entity; using System.Data; using System.Windows.Forms; namespace Stone.User { public class F_Authority { public static void Init(TreeView leftTree, string UserName) { leftTree.CheckBoxes = true; DataSet dsMenu = GetData(); DataTable dtAuthority = GetAuthority(UserName); DataRow[] drOnes = dsMenu.Tables[0].Select("[Levels]=1", "[Sort] asc"); foreach (DataRow drOne in drOnes) { string oneCode = drOne["Code"].ToString(); TreeNode nodeOne = new TreeNode(drOne["Name"].ToString(), 0, 1); if (Convert.ToInt32(drOne["IsChild"]) == 1) nodeOne = new TreeNode(drOne["Name"].ToString(), 2, 3); nodeOne.Tag = drOne["Code"].ToString(); if (dtAuthority.Select("[MenuCode]='" + oneCode + "'").Length > 0) nodeOne.Checked = true; DataRow[] drTows = dsMenu.Tables[0].Select("[Levels]=2 and [Code] like '" + oneCode + "%'", "[Sort] asc"); foreach (DataRow drTow in drTows) { string towCode = drTow["Code"].ToString(); TreeNode nodeTow = new TreeNode(drTow["Name"].ToString(), 0, 1); if (Convert.ToInt32(drTow["IsChild"]) == 1) nodeTow = new TreeNode(drTow["Name"].ToString(), 2, 3); nodeTow.Tag = drTow["Code"].ToString(); if (dtAuthority.Select("[MenuCode]='" + towCode + "'").Length > 0) nodeTow.Checked = true; DataRow[] drThrees = dsMenu.Tables[0].Select("[Levels]=3 and [Code] like '" + towCode + "%'", "[Sort] asc"); foreach (DataRow drThree in drThrees) { string treeCode = drThree["Code"].ToString(); TreeNode nodeThree = new TreeNode(drThree["Name"].ToString(), 0, 1); if (Convert.ToInt32(drThree["IsChild"]) == 1) nodeThree = new TreeNode(drThree["Name"].ToString(), 2, 3); nodeThree.Tag = drThree["Code"].ToString(); if (dtAuthority.Select("[MenuCode]='" + treeCode + "'").Length > 0) nodeThree.Checked = true; nodeTow.Nodes.Add(nodeThree); } nodeOne.Nodes.Add(nodeTow); } leftTree.Nodes.Add(nodeOne); } leftTree.ExpandAll(); } private static DataSet GetData() { Entity_t_Sys_Menu t_Menu = new Entity_t_Sys_Menu(); return t_Menu.GetData("[IsShow]=1"); } private static DataTable GetAuthority(string UserName) { Entity_t_Sys_User t_Sys_User = new Entity_t_Sys_User(); Entity_t_Sys_Menu_Authority t_Sys_Menu_Authority = new Entity_t_Sys_Menu_Authority(); DataTable dtUser = t_Sys_User.GetData("[Name]='" + UserName + "'").Tables[0]; if (dtUser.Rows.Count == 0) throw new Exception(UserName + " 在系统中不存在"); string UserID = dtUser.Rows[0]["ID"].ToString(); return t_Sys_Menu_Authority.GetData("[UserID]=" + UserID).Tables[0]; } } }