2010-03-18 4 views
0

선택한 사용자의 역할을 드롭 다운 목록에 바인딩하려고합니다. 사용자의 역할을 변경할 수 있습니다.사용자 역할을 드롭 다운에 바인딩 하시겠습니까?

은 내가 aspnet_User table에서 행을 포함하는 linqdatasource까지 꺾어 formview 내부에이를 시도하고있다.

드롭 다운 목록은 aspnet_Roles table (with DataValueField="RoleID", DataTextField="RoleName")에있는 모든 역할의 linqdatasource에 연결됩니다.

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

그러나이 제대로 수행하지 않는 포맷하는 바인드 호출에 대해, 파서 예외가 발생합니다 :

나는이 같은 뭔가 할 수있을 것입니다 생각.

역할은 내가 제거 할 때 그들이 표시, 거기에있는 SelectedValue

사람이 올바른 방향으로 날 포인트? 당신이 드롭 다운에 aspnet_roles 테이블을 결합하는 경우

답변

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_usersinrole합니까? 대신 aspnet_role 객체에 바인딩하려면 다음을 수행하십시오.

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

대신; 올바른 속성에 연결됩니다. aspnet_usersinrole을 바인드하려면 가능한 경우 LINQDataSource에서 aspnet_usersinrole을 선택하고 aspnet_role 객체를 선택하기 위해 select 작업을 수행하십시오.

+0

죄송 봤는데한다 드롭 다운은 모든 역할을 얻는 역할에 바인드됩니다. selectedvalue의 바인드 호출은 편집중인 사용자의 역할을 드롭 다운에 바인드하는 것입니다 (따라서 편집중인 사용자가 "Admin"인 경우 역할 "관리자"가 드롭 다운에서 기본적으로 선택됩니다) – Dynde

관련 문제