ASP.NET C#将用户添加/更新到角色

大家好我有一个页面显示住宿信息,然后是在DetailsView中创建该信息的人的UserID。

我还有一个按钮,应该看看UserID和单击时将该userID转换为用户名,以便我可以使用该用户名将人员角色更改为租用者。 但是我不确定使用C#如何从详细信息视图中获取UserID进行转换并更新角色。 有任何想法吗?

标记

@Tim

这是我添加的代码:

public partial class adminonly_approval : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } void DetailsView1_ItemCommand(Object sender, DetailsViewCommandEventArgs e){ if (e.CommandName == "SetToRenter") { // if UserID is in second row: DetailsViewRow row = DetailsView1.Rows[9]; // Get the Username from the appropriate cell. // In this example, the Username is in the second cell String UserID = row.Cells[9].Text; MembershipUser memUser = Membership.GetUser(UserID); Roles.AddUserToRole(memUser.UserName, "renter"); } } 

我在详细信息视图下方的页面上添加了一个按钮,并将commandName设置为SetToRenter。 当我点击按钮但它没有改变角色时。 我是ASP和C#的新手,但需要此function才能完成大学任务。 任何的想法?

Membership.GetUser(用户ID)

 MembershipUser memUser = Membership.GetUser(UserId); Roles.AddUserToRole(memUser.UserName, "Renter"); 

Roles.AddUserToRole

以下是有关如何获取DetailsView的BoundFields值的示例: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.itemcommand.aspx

您应该将Button的CommandName设置为其function,并在代码隐藏中处理DetailsView.ItemCommand事件。 在那里,您可以通过以下方式获取UserID:

 void DetailsView1_ItemCommand(Object sender, DetailsViewCommandEventArgs e){ if (e.CommandName == "SetToRenter") { // if UserID is in second row: DetailsViewRow row = DetailsView1.Rows[1]; // Get the Username from the appropriate cell. // In this example, the Username is in the second cell String UserID = row.Cells[1].Text; MembershipUser memUser = Membership.GetUser(UserId); Roles.AddUserToRole(memUser.UserName, "Renter"); } } 

正如Cem所提到的,你应该设置DetailsView的DataKey属性 。 然后您还可以通过以下方式获取当前记录的PK:

 // Get the ArrayList objects that represent the key fields ArrayList keys = (ArrayList)(DetailsView1.DataKey.Values).Keys; // Get the key field for the current record. String UserID = keys[0].ToString(); 

更简单的是DetailsView的快捷方式SelectedValue :

 String UserID= DetailsView1.SelectedValue.ToString();