【问题标题】:ASP.NET Assign Role by CheckBoxASP.NET 通过复选框分配角色
【发布时间】:2014-01-11 01:40:47
【问题描述】:

我正在使用 VS2005 C#。

我有一个用户列表和 2 个复选框。复选框分别表示AdministratorUser。当用户被选中时,相应的复选框将根据分配给用户的角色选中

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

下面是我的代码sn-ps:


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

    }
}

谁能帮我发现我的错误?

【问题讨论】:

    标签: c# asp.net visual-studio


    【解决方案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>
    

    【讨论】:

    • 刚刚编辑了我的评论。您可能需要在 apsx 页面顶部设置一个脚本管理器。
    • 我正在使用 VS2005,我认为不支持 updatepanel。还是谢谢
    • VS 2005 我认为应该有它。该控件在 ajax 扩展下。 asp.net/ajax/documentation/live/tutorials/…
    猜你喜欢
    • 1970-01-01
    • 2011-08-19
    • 2023-01-13
    • 2013-04-21
    • 2019-10-20
    • 2020-10-16
    • 2015-08-01
    • 1970-01-01
    • 2020-10-27
    相关资源
    最近更新 更多