我正在尝试将所选用户的角色绑定到下拉列表。 这样做的目的是能够改变所述用户的角色。
我在一个连接到linqdatasource的formview中尝试这个,它包含aspnet_User table
中的一行。
下拉列表连接到aspnet_Roles table (with DataValueField="RoleID", DataTextField="RoleName")
中所有角色的linqdatasource。
我认为可以使用以下内容:
SelectedValue='<%# Bind("aspnet_UsersInRole[0].aspnet_Role.RoleID") %>'
但是这会抛出一个解析器异常,关于绑定调用没有正确格式化。
角色在那里,当我删除SelectedValue
有人能指出我正确的方向吗?
答案 0 :(得分:0)
如果你将aspnet_roles表绑定到下拉列表,为什么代码示例使用aspnet_usersinrole?相反,如果要绑定到aspnet_role对象,请执行:
SelectedValue='<%# Bind("RoleID") %>'
相反;这将连接到正确的财产。如果你想绑定aspnet_usersinrole,如果可能的话,在LINQDataSource中,从结果的aspnet_usersinrole,做一个select操作,为此选择aspnet_role对象。
答案 1 :(得分:0)
已解决 - 我最终只是在代码隐藏中创建了一个返回roleID的方法,如下所示:
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")) %>'