用户管理1

来源:互联网 发布:python字典增加元素 编辑:程序博客网 时间:2024/06/07 06:27

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);
                    }
                }


            }
        }


        


        
        }
        }


       




    
    


    


0 0
原创粉丝点击