【发布时间】:2011-06-18 18:26:26
【问题描述】:
我正在为一个朋友制作一个电子商务网站,我希望它尽可能具有可扩展性。我假设在某个时候他们的社区将增长到压倒性的数量,他们最终将需要任命新的管理员。我不希望他们来找我配置 WSAT。 我已经放入了两个下拉列表和一个按钮。 第一个提取用户并将用户名与他们所在的角色连接起来。第二个提取所有角色。 该按钮将所选用户从他们所在的位置中移除,并将他们置于下拉列表中选择的角色中。
<asp:DropDownList ID="ddlUsers" runat="server" AppendDataBoundItems="True"
DataSourceID="dsMembers" DataTextField="Info" DataValueField="Username">
<asp:ListItem>--Select a User --</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlRoles" runat="server" AppendDataBoundItems="True"
DataSourceID="dsRoles" DataTextField="RoleName" DataValueField="RoleId"
style="margin-bottom: 0px">
<asp:ListItem>--Select Privilege--</asp:ListItem>
</asp:DropDownList>
<asp:LinkButton ID="lbtnChangeRole" runat="server"
onclick="lbtnChangeRole_Click">Change Role</asp:LinkButton>
但是,每次我单击按钮时,它都会自动选择列表中的第一个用户,无论我选择了哪个用户。
这是后面的代码。
protected void lbtnChangeRole_Click(object sender, EventArgs e)
{
string user = ddlUsers.SelectedValue.ToString();
string role = ddlRoles.SelectedItem.ToString();
string currentRole = Roles.GetRolesForUser(user)[0];
//check to see if the user is already in role
if (!Roles.IsUserInRole(user, role))
{
Roles.AddUserToRole(user, role);
Roles.RemoveUserFromRole(user, currentRole);
}
}
【问题讨论】: