1 添加users页面继承自Adminmaster
2添加 datagrid控件
配置数据源
增加编辑角色功能
2
3在<asp:TemplateField>里添加如下代码
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="编辑角色"
/*public string CommandArgument { set; get; }
System.Web.UI.WebControls.Button 的成员
摘要:
获取或设置可选参数,该参数与关联的 System.Web.UI.WebControls.Button.CommandName 一起被传递到 System.Web.UI.WebControls.Button.Command 事件。
返回值:
与关联的 System.Web.UI.WebControls.Button.CommandName 一起被传递到 System.Web.UI.WebControls.Button.Command 事件的可选参数。默认值为 System.String.Empty。
CommandName="Select"
CommandArgument='<%# Eval("UserName") %>'
/>*/
</ItemTemplate>
</asp:TemplateField>
4添加事件
添加如下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace WebApplication1
{
public partial class Users : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.CheckBoxListRoles.DataSource = Roles.GetAllRoles();
this.CheckBoxListRoles.DataBind(); //保护
|
名称 | 说明 |
---|---|---|
DataBind() | 将数据源绑定到被调用的服务器控件及其所有子控件。 (继承自Control。) | |
DataBind(Boolean) | 将数据源绑定到调用的服务器控件及其所有子控件,同时可以选择引发DataBinding 事件。 (继承自 Control。) |
/*public static string[] GetAllRoles()
System.Web.Security.Roles 的成员 摘要:获取应用程序的所有角色的列表。返回值:一个字符串数组,包含在应用程序的数据源中存储的所有角色名称。System.Configuration.Provider.ProviderException: 未启用角色管理。
*/
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string username = this.GridView1.SelectedDataKey.Value.ToString(); //
/*获取 DataKey 对象,该对象包含 GridView 控件中选中行的数据键值。
命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)
当设置了 DataKeyNames 属性时,GridView 控件使用指定字段的值为控件中的每一行自动创建一个 DataKey 对象。DataKey 对象随后被添加到控件的 DataKeys 集合中。正常情况下,DataKeys 属性用于检索 GridView 控件中特定数据行的 DataKey 对象。但是,如果您只需要检索当前选中行的 DataKey 对象,则可以简单地使用SelectedDataKey 属性作为一种快捷方式。*/
foreach (ListItem li in this.CheckBoxListRoles.Items) // foreach 语句用于循环访问集合以获取所需信息 在items中循环一个新实例
{
var role = li.Value;
li.Selected = Roles.IsUserInRole(username,role);//验证所选的属不属于角色public abstract bool IsUserInRole(string username, string roleName)
System.Web.Security.RoleProvider 的成员
摘要:
获取一个值,指示指定用户是否属于已配置的 applicationName 的指定角色。
}
}
protected void CheckBoxListRoles_SelectedIndexChanged(object sender, EventArgs e)
{
string username = this.GridView1.SelectedDataKey.Value.ToString();
foreach (ListItem li in this.CheckBoxListRoles.Items)
{
var role = li.Value;
if (li.Selected)
{
if (!Roles.IsUserInRole(username, role))
{
Roles.AddUserToRole(username, role);
}
}
else
{
if (Roles.IsUserInRole(username, role))
{
Roles.RemoveUserFromRole(username, role);
}
}
}
}
}
}