您好我需要在DropDownList中显示属于特定ROLE的“用户”列表。
这是我的代码:
// Find DropDownList
DropDownList myUserList = (DropDownList)uxInsertAuthorInput.FindControl("uxUserListSelector");
// Bind data to DropDownList
myUserList.DataSource = Roles.GetUsersInRole("CMS-AUTHOR");
myUserList.DataBind();
myUserList.DataTextField = "UserName";
我的问题是访问者在DropDownList中选择一个项目。 传递的实际值是“UserName”而不是“UserId”。
当访问者从DropDownList中选择一个项目时,我需要使用“UserId”值。
怎么做? 谢谢你的帮助
答案 0 :(得分:2)
您可以选择所选用户名并致电Membership.GetUser。然后,您可以使用MembershipUser.ProviderUserKey属性获取用户ID。
当然,如果目标是从用户ID获取MembershipUser,那么在调用GetUser
后您将拥有该用户。
答案 1 :(得分:0)
返回您的.aspx代码(如果您使用的是WYSIWYG则设计)。更改SQL数据源中的查询。我通过使用:
来做到这一点 <asp:SqlDataSource ID="sqlUsersInRole0" runat="server" ConnectionString="<%$ ConnectionStrings:NCLWebConnectionString %>"
SelectCommand="GetUsersInRole" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="MaintenanceWorkers" Name="rolename" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
我认为这也可以以编程方式完成,但为什么要这么麻烦?