⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userrole.aspx.cs

📁 办公自动化系统
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using OfficeAuto.Components;

namespace OfficeAuto.DesktopModules.UserRole
{
	/// <summary>
	/// UserRole 的摘要说明。
	/// </summary>
	public class UserRole : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.DropDownList UserList;
		protected System.Web.UI.WebControls.ListBox RoleList;
		protected System.Web.UI.WebControls.Button AddBtn;
		protected System.Web.UI.WebControls.Button AddAllBtn;
		protected System.Web.UI.WebControls.ListBox UserRoleList;
		protected System.Web.UI.WebControls.ImageButton deleteBtn;
		protected System.Web.UI.WebControls.Button SureBtn;
		protected System.Web.UI.HtmlControls.HtmlGenericControl title;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			///判断用户是否登录,否则跳转到登录页面
			if(Session["UserID"] == null)
			{
				Response.Redirect("~/Default.aspx");
			}

			if(!Page.IsPostBack)
			{
				BindUserData();

				BindRoleData();

				if(UserList.SelectedIndex > -1)
				{
					///当存在用户时,绑定该用户的的权限列表
					BindUserRoleData(Int32.Parse(UserList.SelectedValue));
				}
			}

			deleteBtn.Attributes.Add("onclick","return confirm('你确定要删除所选择的用户角色吗?');");
		}

		private void BindUserData()
		{
			UserList.Items.Clear();

			StaffDB user = new StaffDB();
			SqlDataReader recu = user.GetStaffs();

			UserList.DataSource = recu;
			UserList.DataTextField = "Staff_Name";
			UserList.DataValueField = "Staff_ID";
			UserList.DataBind();

			recu.Close();
		}

		private void BindRoleData()
		{
			RoleList.Items.Clear();

			RoleDB role = new RoleDB();
			SqlDataReader recr = role.GetRoles();

			RoleList.DataSource = recr;
			RoleList.DataTextField = "RoleName";
			RoleList.DataValueField = "RoleID";
			RoleList.DataBind();

			recr.Close();
		}

		private void BindUserRoleData(int nUserID)
		{
			UserRoleList.Items.Clear();

			UserRoleDB userRole = new UserRoleDB();
			SqlDataReader recur = userRole.GetRoleByUser(nUserID);
             
			UserRoleList.DataSource = recur;
			UserRoleList.DataTextField = "RoleName";
			UserRoleList.DataValueField = "RoleID";
			UserRoleList.DataBind();

			recur.Close();
		}

		private void UserList_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			if(UserList.SelectedIndex > -1)
			{
				BindUserRoleData(Int32.Parse(UserList.SelectedValue));
			}
			else
			{
				///清空用户角色列表
				UserRoleList.Items.Clear();
			}
		}

		private void deleteBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			if(UserRoleList.SelectedIndex > -1)
			{
				UserRoleDB userRole = new UserRoleDB();

				try
				{
					///删除用户的角色,同时更新数据库
					userRole.DeleteUserRole(Int32.Parse(UserList.SelectedValue),Int32.Parse(UserRoleList.SelectedValue));
				}
				catch(Exception ex)
				{
					string sRawURL = Request.RawUrl;

					if(sRawURL.IndexOf("?") > -1)
					{
						sRawURL = sRawURL.Substring(0,sRawURL.IndexOf("?"));
					}				
					Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl=" + sRawURL + "&ErrorMessage=" + ex.Message.Replace("\n"," "));
				}

				///重新绑定用户角色表
				BindUserRoleData(Int32.Parse(UserList.SelectedValue));
			}
			else
			{
				Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
			}
		}

		/// <summary>
		/// 增加用户的角色;
		/// 方式1:一次添加一个角色;
		/// 方式2:一次添加所有角色
		/// </summary>
		private void AddOneOrAllBtn_Click(object sender, System.EventArgs e)
		{
			String commandName = ((Button)sender).CommandName;
		
			switch(commandName)
			{
				case "add":
				{
					AddOneRole();

					break;
				}
				case "addall":
				{
					AddAllRole();

					break;
				}
				default:
				{
					//
					break;
				}
			}
		}

		private void AddOneRole()
		{	
			if(RoleList.SelectedIndex > -1)
			{
				///判定用户时候已经拥有添加的角色,
				///如果存在则不添加,否则添加
				///注意:此时并没有提交到数据库
				if(IsExistRole(UserRoleList,RoleList.SelectedItem) == false)
				{
					UserRoleList.Items.Add(RoleList.SelectedItem);

					//控制删除功能可用性
					deleteBtn.Visible = false;
				}
				else
				{
					Response.Write("<script>alert(\"你选择的数据项已经存在,请重新选择!\")</script>");
				}
			}
			else
			{
				Response.Write("<script>alert(\"请选择你的数据项!\")</script>");
			}
			
			//必须清空列表中的选项;原因在于,网页不支持同时选定两个ListBox
			for(int i = 0; i< UserRoleList.Items.Count; i++)
			{
				UserRoleList.Items[i].Selected = false;
			}
		}

		private void AddAllRole()
		{
			UserRoleList.Items.Clear();

			if(RoleList.Items.Count > 0)
			{
				for(int i = 0; i< RoleList.Items.Count; i++)
				{
					UserRoleList.Items.Add(RoleList.Items[i]);
				}

				//控制删除功能可用性
				deleteBtn.Visible = false;
			}
			else
			{
				Response.Write("<script>alert(\"请选择你的数据项为空!\")</script>");
			}
		}

		/// <summary>
		/// 判定用户角色列表中是否存在,
		/// 存在不添加,否则添加
		/// </summary>
		/// <param name="listBox" type="ListBox"></param>
		/// <param name="listItem" type="ListItem"></param>
		private bool IsExistRole(ListBox listBox,ListItem listItem)
		{
			bool isExist = false;

			if(listBox.Items.Count > 0)
			{
				for(int i = 0; i< listBox.Items.Count; i++)
				{
					if(listItem.Text == listBox.Items[i].Text)
					{
						isExist = true;
						break;
					}
				}
			}
			return(isExist);
		}

		private void SureBtn_Click(object sender, System.EventArgs e)
		{
			if(UserRoleList.Items.Count > 0)
			{
				UserRoleDB userRole = new UserRoleDB();
				try
				{
					for(int i = 0; i< UserRoleList.Items.Count; i++)
					{					
						userRole.AddUserRole(Int32.Parse(UserList.SelectedValue),Int32.Parse(UserRoleList.Items[i].Value));
					}	
				}
				catch(Exception ex)
				{
					string sRawURL = Request.RawUrl;

					if(sRawURL.IndexOf("?") > -1)
					{
						sRawURL = sRawURL.Substring(0,sRawURL.IndexOf("?"));
					}				
					Response.Redirect("~/DesktopModules/ErrorPage.aspx?ErrorUrl=" + sRawURL + "&ErrorMessage=" + ex.Message.Replace("\n"," "));
				}				

				//控制删除功能可用性
				deleteBtn.Visible = true;
			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.UserList.SelectedIndexChanged += new System.EventHandler(this.UserList_SelectedIndexChanged);
			this.AddBtn.Click += new System.EventHandler(this.AddOneOrAllBtn_Click);
			this.AddAllBtn.Click += new System.EventHandler(this.AddOneOrAllBtn_Click);
			this.deleteBtn.Click += new System.Web.UI.ImageClickEventHandler(this.deleteBtn_Click);
			this.SureBtn.Click += new System.EventHandler(this.SureBtn_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -