using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; namespace FineUIPro.Web.SysManage { public partial class SystemMenuSet : PageBase { /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetButtonPower(); this.ckMenuType.DataTextField = "Text"; this.ckMenuType.DataValueField = "Value"; this.ckMenuType.DataSource = BLL.DropListService.Sys_Menu_Type(); this.ckMenuType.DataBind(); /// 加载菜单树 this.InitMenuTree(String.Join(", ", this.ckMenuType.SelectedValueArray)); } } #region Tab2 /// /// 菜单类型选择 /// /// /// protected void ckMenuType_OnSelectedIndexChanged(object sender, EventArgs e) { this.InitMenuTree(String.Join(", ", this.ckMenuType.SelectedValueArray)); } #region 初始化树 /// /// 初始化树 /// /// 菜单集合 private void InitMenuTree(string menuType) { this.tvMenu.Nodes.Clear(); var menus = BLL.SysMenuService.GetMenuListByMenuType(menuType); if (menus.Count() > 0) { TreeNode rootNode = new TreeNode { Text = "菜单", NodeID = "0", EnableCheckBox = true, EnableCheckEvent = true, Expanded = true }; this.tvMenu.Nodes.Add(rootNode); this.BoundTree(rootNode.Nodes, menus, rootNode.NodeID); } } /// /// 遍历增加子节点 /// /// /// private void BoundTree(TreeNodeCollection nodes, List sysMenus, string superMenuId) { var menus = sysMenus.Where(x => x.SuperMenu == superMenuId).OrderBy(x => x.SortIndex); if (menus.Count() > 0) { foreach (var item in menus) { TreeNode chidNode = new TreeNode { Text = item.MenuName, NodeID = item.MenuId, EnableCheckBox = true, EnableCheckEvent = true }; if (item.IsUsed == true) { chidNode.Checked = true; chidNode.Expanded = true; chidNode.Selectable = true; } nodes.Add(chidNode); if (!item.IsEnd.HasValue || item.IsEnd == false) { this.BoundTree(chidNode.Nodes, sysMenus, item.MenuId); } } } } #endregion #region 全选、全不选 /// /// 全选、全不选 /// /// /// protected void tvMenu_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e) { if (e.Checked) { this.tvMenu.CheckAllNodes(e.Node.Nodes); SetCheckParentNode(e.Node); } else { this.tvMenu.UncheckAllNodes(e.Node.Nodes); } } /// /// 选中父节点 /// /// private void SetCheckParentNode(TreeNode node) { if (node.ParentNode != null && node.ParentNode.NodeID != "0") { node.ParentNode.Checked = true; if (node.ParentNode.ParentNode.NodeID != "0") { SetCheckParentNode(node.ParentNode); } } } #endregion #region Tab2保存按钮 /// /// Tab2保存按钮 /// /// /// protected void btnTab2Save_Click(object sender, EventArgs e) { string menuTyp = String.Join(", ", this.ckMenuType.SelectedValueArray); if (!string.IsNullOrEmpty(menuTyp)) { BLL.SysMenuService.SetAllIsUsed(menuTyp); TreeNode[] nodes = this.tvMenu.GetCheckedNodes(); if (nodes.Length > 0) { foreach (TreeNode tn in nodes) { if (tn.NodeID != "0") { if (BLL.RolePowerService.IsExistMenu(tn.NodeID)) { var menu = Funs.DB.Sys_Menu.FirstOrDefault(x => x.MenuId == tn.NodeID); if (menu != null) { menu.IsUsed=true; BLL.SysMenuService.UpdateSys_Menu(menu); } } } } } ShowNotify("保存成功!", MessageBoxIcon.Success); } } #endregion #endregion #region 按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { if (this.CurrUser.Account=="hfnbd") { this.btnTreeMenuEdit.Hidden = false; this.btnTreeMenuMove.Hidden = false; this.btnTab2Save.Hidden = false; } //if (this.CurrUser.UserId == BLL.Const.sysglyId) //{ // this.btnRefresh.Hidden = false; // this.btnRefresh1.Hidden = false; //} } #endregion protected void btnTreeMenuEdit_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SystemMenuSetEdit.aspx?MenuId={0}", this.tvMenu.SelectedNodeID, "编辑 - "))); } protected void btnTreeMenuMove_Click(object sender, EventArgs e) { if (this.tvMenu.SelectedNodeID=="0") { Alert.ShowInParent("暂不支持根节点迁移!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SystemMenuSetMove.aspx?MenuId={0}", this.tvMenu.SelectedNodeID, "编辑 - "))); } } }