roles.ascx.cs
来自「三层架构的.net源码三层架构的.net源码」· CS 代码 · 共 153 行
CS
153 行
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace MyStarterKit.Portal.Web
{
/// <summary>
/// Roles 的摘要说明。
/// </summary>
public class Roles : PortalModuleControl
{
protected System.Web.UI.WebControls.DataList rolesList;
protected System.Web.UI.WebControls.LinkButton AddRoleBtn;
private void Page_Load(object sender, System.EventArgs e)
{
// 用户角色为Admins的才能访问该管理模块,否则重定向到EditAccessDenied.aspx
if (PortalSecurity.IsInRoles("Admins") == false)
{
Response.Redirect("~/Admin/EditAccessDenied.aspx");
}
if (Page.IsPostBack == false)
{
BindData();
}
}
/// <summary>
/// 添加角色信息
/// </summary>
/// <param name="Sender"></param>
/// <param name="e"></param>
private void AddRole_Click(Object Sender, EventArgs e)
{
// 从HttpContext中获取全局设置对象
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
// 添加一个新的角色到数据库中
RolesDB roles = new RolesDB();
roles.AddRole(portalSettings.PortalId, "New Role");
// 设置编辑选中项为最后一项,新增的总是最后一项
rolesList.EditItemIndex = rolesList.Items.Count;
// 重新绑定
BindData();
}
/// <summary>
/// 当列表中的按钮事件触发时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RolesList_ItemCommand(object sender, DataListCommandEventArgs e)
{
RolesDB roles = new RolesDB();
int roleId = (int) rolesList.DataKeys[e.Item.ItemIndex];
if (e.CommandName == "edit")
{
//编辑
rolesList.EditItemIndex = e.Item.ItemIndex;
// Repopulate the datalist control
BindData();
}
else if (e.CommandName == "apply")
{
// 修改
// Apply changes
String _roleName = ((TextBox) e.Item.FindControl("roleName")).Text;
// update database
roles.UpdateRole(roleId, _roleName);
// Disable editable list item access
rolesList.EditItemIndex = -1;
// Repopulate the datalist control
BindData();
}
else if (e.CommandName == "delete")
{
// 删除
// update database
roles.DeleteRole(roleId);
// Ensure that item is not editable
rolesList.EditItemIndex = -1;
// Repopulate list
BindData();
}
else if (e.CommandName == "members")
{
// 更改角色用户
// 先保存角色信息
String _roleName = ((TextBox) e.Item.FindControl("roleName")).Text;
roles.UpdateRole(roleId, _roleName);
// 重定向到角色信息编辑页
Response.Redirect("~/Admin/SecurityRoles.aspx?roleId=" + roleId + "&rolename=" + _roleName);
}
}
/// <summary>
/// 初始化控件数据
/// </summary>
private void BindData()
{
// 从HttpContext中获取全局设置对象
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
// 从数据库中读取角色信息
RolesDB roles = new RolesDB();
rolesList.DataSource = roles.GetPortalRoles(portalSettings.PortalId);
rolesList.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.rolesList.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.RolesList_ItemCommand);
this.AddRoleBtn.Click += new System.EventHandler(this.AddRole_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?