2010-03-18 69 views
0

我試圖將選定的用戶的角色綁定到下拉列表。 這樣做的目的是能夠改變所述用戶的角色。將用戶角色綁定到下拉列表中?

我試圖在一個formview內連接到一個linqdatasource包含從aspnet_User table行。

下拉列表連接到aspnet_Roles table (with DataValueField="RoleID", DataTextField="RoleName")中所有角色的linqdatasource。

我想這將有可能是這樣的:

SelectedValue='<%# Bind("aspnet_UsersInRole[0].aspnet_Role.RoleID") %>' 

但是,這將引發一個解析器例外,關於bind調用不正確格式化。

的角色都在那裏,他們出現的時候我刪除SelectedValue

任何人都可以點我在正確的方向?

回答

0

解決 - 我最終只是讓在返回的角色ID,像這樣的代碼隱藏的方法:

public Guid GetRoleID(Guid userID) { 
    DBDataContext db = new DBDataContext(); 
    aspnet_User user = db.aspnet_Users.SingleOrDefault(o => o.UserId == userID); 
    return user.aspnet_UsersInRoles[0].aspnet_Role.RoleId; 
} 

然後在標記做:

SelectedValue='<%# GetRoleID((Guid)Eval("UserID")) %>' 
0

如果您將aspnet_roles表綁定到下拉列表中,那麼爲什麼代碼示例使用aspnet_usersinrole?相反,如果你希望綁定到aspnet_role對象,這樣做:

SelectedValue='<%# Bind("RoleID") %>' 

相反;這將連接到正確的屬性。如果要綁定aspnet_usersinrole(如果可能,請在調用aspnet_usersinrole的LINQDataSource中),執行select操作以選擇aspnet_role對象,而不是此選項。

+0

對不起,應該已經更清楚的是 - 下拉菜單綁定角色以獲得所有角色,在選定值中綁定調用將綁定正在編輯的用戶的角色和下拉列表(如果正在編輯的用戶是「管理員」,則在下拉菜單中默認選擇「Admin」角色) – Dynde 2010-03-18 11:27:57