2009-12-02 5 views
3

Visual Studio에서 개발중인 사용자 지정 SharePoint 워크 플로가 있습니다. 워크 플로는 사용자 지정 콘텐츠 형식이 연결된 문서 라이브러리에 대해 실행됩니다. 내용 유형에는 사용자 조회 필드 ("owner")가 포함됩니다.SharePoint에서 사용자 이름 가져 오기 목록의 사용자 필드

"워크 플로"작업을 "소유자"조회 필드에 할당하려고합니다. 그러나 계정 사용자 이름이 아닌 사용자의 표시 이름 만 가져올 수있었습니다.

아무도 도와 줄 수 있습니까?

+0

일부 코드는 게시 할 수 있습니까? –

+1

내가 필요한 것을 찾을 수 있도록 관리했습니다. 다음 코드 블록은 원하는 사용자 정보 (예 : 작업을 할당하는 데 필요한 계정 이름)를 얻는 데 사용할 수있는 SPUser 항목을 반환합니다. "키"는 원하는 사용자가 포함 된 필드/열입니다. 개인 정적 SPUser GetSPUser (SPListItem 항목, 문자열 키) { \t SPFieldUser field = item.Fields [key] as SPFieldUser; \t if (field! = null) { \t \t SPFieldUserValue fieldValue = item.GetFieldValue (item [key] .ToString()) SPFieldUserValue; \t \t if (fieldValue! = null) { \t \t \t return fieldValue.User; \t \t} \t} \t return null; } –

답변

10

필드에서 사용자 세부 정보를 얻는 방법은 Article을 참조하십시오.

public static SPUser GetSPUser(SPListItem item, string key) { 
    SPFieldUser field = item.Fields[key] as SPFieldUser; 

    if(field != null) { 
     SPFieldUserValue fieldValue = field.GetFieldValue(item[key].ToString()) as SPFieldUserValue; 

     if(fieldValue != null)  
      return fieldValue.User; 
     } 
     return null; 
} 

코드는 다음과

SPUser spUser=GetSPUser(splistItem,"Owner"); 
String sUserName=(spUser!=null)?spUser.UserName:null; 
+0

다음과 같이 사용해야합니다 :'SPField field = item.Fields.GetFieldByInternalName (emailToken); if (field.Type == SPFieldType.User) { SPFieldUserValue userValue = 새 SPFieldUserValue (item.Web, sFieldValue) – PeterX

4

내 솔루션 같아야합니다

public static SPUser GetSPUser(SPListItem item, string key) 
{ 
    SPUser user=null; 
    SPFieldUserValue userValue = new SPFieldUserValue(item.Web, item[key].ToString()); 
    if (userValue != null) 
    { 
     SPUser user = userValue.User; 
    } 
return user; 
} 

호출하는 방법 :

SPUser spUser=GetSPUser(splistItem,"Owner"); 

이 테스트 코드와 작업을 잘.

관련 문제