我正在使用VS2005 C#。
我有一个用户列表和2个复选框。每个复选框都表示Administrator
和User
。选择用户后,将根据分配给用户的角色选中 。
现在我正在尝试通过选中/取消选中复选框来添加/删除所选用户的角色,但我遇到了一些问题。页面重新加载片刻并将复选框状态重置为原始状态,并且角色不会更改。
以下是我的代码段:
<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();
}
}
任何人都可以为我发现我的错误吗?
答案 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>