using System; using System.Collections.Generic; using System.Web; using System.Web.UI.WebControls; using SuperMap.RealEstate.Web.UI; using Business = SuperMap.RealEstate.FrameWork.Business; using HZQR.Common; namespace Personnel.WebSite.Modules.Roles { public partial class RoleTree : BasePage { protected override void OnInit(EventArgs e) { base.OnInit(e); _RoleModule = new Business.RoleModule(Transaction); } Business.RoleModule _RoleModule = null; Business.RoleModulePopedom _RoleModulePopedom = new Business.RoleModulePopedom(); protected void Page_Load(object sender, EventArgs e) { this.Master_SizeBox.SideBar.Width = "45%"; if (IsPostBack) return; this.FixTreeViewDoubleClick(MyTreeView, false); this.FixTreeViewDoubleClick(TreeViewRoleModule, false); this.FixTreeViewNodeChecked(MyTreeView); this.FixTreeViewNodeChecked(TreeViewRoleModule); SetControlClientAction(ButtonRemove, false, true, true); SetControlClientAction(ButtonSave, false, true, true); //SetControlClientAction(ButtonSearch); TreeViewBinding_BusinessSystem(); this.SetControlClosePopDialog(buttonClose); } #region Role_ID private int Role_ID { get { return Request["ID"].ToDecryptInt32(); } } #endregion //绑定数据源 private void TreeViewBinding_BusinessSystem() { MyTreeView.Nodes.Clear(); BindingTreeViewUnModular(Transaction, MyTreeView.Nodes, Role_ID, -1, null, null); TreeViewBinding_RoleModule(); } private void TreeViewBinding_RoleModule() { TreeViewRoleModule.Nodes.Clear(); BindingTreeViewModular(Transaction, TreeViewRoleModule.Nodes, Role_ID, -1, null, null); } protected void MyTreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e) { TreeView treeView = sender as TreeView; switch (treeView.ID) { case "TreeViewRoleModule": BindingTreeViewModular(Transaction, TreeViewRoleModule.Nodes, Role_ID, -1, null, null); break; case "MyTreeView": BindingTreeViewUnModular(Transaction, MyTreeView.Nodes, Role_ID, -1, null, null); break; default: break; } //if (e.Node.Value.StartsWith("Module|")) // _RoleModule.BindingTreeView_ModulePopedom(e.Node.Value, e.Node.ChildNodes, e.Node.Checked); //else // _RoleModule.BindingTreeView_BusinessSystem(e.Node.Value, e.Node.ChildNodes, e.Node.Checked); } protected void ButtonSave_Click(object sender, EventArgs e) { _RoleModulePopedom = new Business.RoleModulePopedom(Transaction); foreach (TreeNode _TreeNode in MyTreeView.CheckedNodes) { if (_TreeNode.ImageToolTip == "Module") { _RoleModule.ResetProperty(); _RoleModule.Module_ID = _TreeNode.Value.TryParseToInt(); _RoleModule.Role_ID = Role_ID; _RoleModule.Insert(); } } //SaveRoleModule(MyTreeView.Nodes); TreeViewBinding_BusinessSystem(); } private void SaveRoleModule(TreeNodeCollection treeNodeCollection) { foreach (TreeNode _Node in treeNodeCollection) { if (!_Node.Checked) { _Node.Checked = false; continue; } if (_Node.ImageToolTip == "BusinessSystem") { if (_Node.PopulateOnDemand) { _Node.PopulateOnDemand = false; _RoleModule.BindingTreeView_BusinessSystem(_Node.Value, _Node.ChildNodes,_Node.Checked); } SaveRoleModule(_Node.ChildNodes); _Node.Checked = false; continue; } _Node.Checked = false; _RoleModule.ResetProperty(); _RoleModule.AddSearchParameter("Role_ID", Role_ID); _RoleModule.AddSearchParameter("Module_ID", int.Parse(_Node.Value.Replace("Module|", ""))); //是否存在 if (!_RoleModule.Search()) { _RoleModule.ResetProperty(); _RoleModule.Role_ID = Role_ID; _RoleModule.Module_ID = int.Parse(_Node.Value.Replace("Module|", "")); //_RoleModule. _RoleModule.Insert(); } if (_Node.PopulateOnDemand) { _Node.PopulateOnDemand = false; _RoleModule.BindingTreeView_ModulePopedom(_Node.Value, _Node.ChildNodes, true); } //判斷是否有模塊權限 foreach (TreeNode _PopedomNode in _Node.ChildNodes) { if (!_PopedomNode.Checked) { _PopedomNode.Checked = false; continue; } _PopedomNode.Checked = false; _RoleModulePopedom.ResetProperty(); _RoleModulePopedom.AddSearchParameter("ModulePopedom_ID", _PopedomNode.Value); _RoleModulePopedom.AddSearchParameter("RoleModule_ID", _RoleModule.RoleModule_ID); //是否存在 if (_RoleModulePopedom.Search()) continue; _RoleModulePopedom.ResetProperty(); _RoleModulePopedom.ModulePopedom_ID = int.Parse(_PopedomNode.Value); _RoleModulePopedom.RoleModule_ID = _RoleModule.RoleModule_ID; _RoleModulePopedom.Insert(); } } } protected void ButtonRemove_Click(object sender, EventArgs e) { _RoleModule = new Business.RoleModule(Transaction); //_RoleModulePopedom = new Business.RoleModulePopedom(Transaction); foreach (TreeNode _TreeNode in TreeViewRoleModule.CheckedNodes) { if (_TreeNode.ImageToolTip == "Module") { _RoleModule.ResetProperty(); _RoleModule.AddSearchParameter("MODULE_ID", _TreeNode.Value.TryParseToInt()); _RoleModule.AddSearchParameter("Role_ID", Role_ID); if (_RoleModule.Search()) { _RoleModule.Delete(); } } } //DeleteRoleModule(TreeViewRoleModule.Nodes); TreeViewBinding_BusinessSystem(); } private void DeleteRoleModule(TreeNodeCollection treeNodeCollection) { foreach (TreeNode _Node in treeNodeCollection) { if (_Node.ImageToolTip == "BusinessSystem") { DeleteRoleModule(_Node.ChildNodes); continue; } if (_Node.ImageToolTip == "RoleModule") { //判斷是否有模塊權限 foreach (TreeNode _PopedomNode in _Node.ChildNodes) { if (!_PopedomNode.Checked) { _PopedomNode.Checked = false; _RoleModulePopedom.ResetProperty(); _RoleModulePopedom.Delete(int.Parse(_PopedomNode.Value)); } } if (!_Node.Checked) { _RoleModule.ResetProperty(); _RoleModule.Delete(int.Parse(_Node.Value)); } } } } } }