ASP.NET通过CheckBox分配角色

时间:2012-01-26 05:26:57

标签: c# asp.net visual-studio

我正在使用VS2005 C#。

我有一个用户列表和2个复选框。每个复选框都表示AdministratorUser。选择用户后,将根据分配给用户的角色选中

现在我正在尝试通过选中/取消选中复选框来添加/删除所选用户的角色,但我遇到了一些问题。页面重新加载片刻并将复选框状态重置为原始状态,并且角色不会更改。

以下是我的代码段:


<asp:CheckBox ID="adminCB" runat="server" Text="Administrator" OnCheckedChanged="Admin_CC" AutoPostBack="true"/><br />
<asp:CheckBox ID="userCB" runat="server" Text="User" OnCheckedChanged="User_CC" AutoPostBack="true"/>

protected void Admin_CC(Object sender, EventArgs e)
{
    if (adminCB.Checked)
    {

        Roles.AddUserToRole(UsersListBox3.SelectedItem.Value, "Administrator");

        // Re-bind users in role to GridView.

        usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
        UsersInRoleGrid.DataSource = usersInRole;
        UsersInRoleGrid.DataBind();

    }

    if (adminCB==null)
    {

        Roles.RemoveUserFromRole(UsersListBox3.SelectedItem.Value, "Administrator");

        // Re-bind users in role to GridView.

        usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
        UsersInRoleGrid.DataSource = usersInRole;
        UsersInRoleGrid.DataBind();

    }
}

任何人都可以为我发现我的错误吗?

1 个答案:

答案 0 :(得分:1)

将复选框按钮放在更新面板中。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
    <asp:CheckBox ID="adminCB" runat="server" Text="Administrator" OnCheckedChanged="Admin_CC" AutoPostBack="true"/><br />
    <asp:CheckBox ID="userCB" runat="server" Text="User" OnCheckedChanged="User_CC" AutoPostBack="true"/>
    </ContentTemplate>
</asp:UpdatePanel>