2009-07-03 9 views
2

셰어 포인트 OOTB에있는대로 사용자 지정 필드 형식을 만들었습니다. 차이점은 최종 사용자가 이름을 확인할 필요가 없다는 것입니다. 즉, DropDownList로 바꾸 었습니다. 드롭 다운 목록은 아니오를 제안합니다. 웹 사이트에서 사용할 수있는 사용자 중 SPFieldUser에서 상속 한 FieldClass와 UserField에서 상속 한 FieldControlClass를 만들었습니다. 모든 조건에서 정상적으로 작동합니다. 즉, List 또는 Document Libarary를 만들 때 DropDownList 이 해당 사용자에게 OK라고 말한 후 나에게 항목을 생성 함을 보여줍니다. 인 - 와이-SVR2 \의 tjagtap, 다음과 같이 나는사용자 및 그룹 사용자 정의 필드 유형 셰어 포인트

public override object Value 

{ 

    get 
    { 
     SPUserCollection userscollection = rootWeb.SiteUsers; 
     //ddlInfoBox is a DropDownList to which I have Binded the collection of users in the form of string 
     SPUser user = userscollection.Web.EnsureUser(this.ddlInfoBox.SelectedValue); 
     SPFieldUserValue userval = new SPFieldUserValue(user.ParentWeb, user.ID, user.LoginName); 

     return userval; 
    } 

    set 
    { 
     SPFieldUserValue userval = (SPFieldUserValue) this.ItemFieldValue;   
     this.ddlInfoBox.SelectedValue = userval.Lookupvalue; //Here look up value is nothing but a Login name e.g In-Wai-Svr2\tjagtap 
    } 
} 

이 때문에 현재을 ListItem에 대한 사용자 정의 필드의 값이 SPFieldUserValue 예컨대로 저장됩니다 위의 재산 27 #에, FieldControlClass의 Value 속성을 재정의했다.

주요 문제는이 특정 ListItem이 목록 페이지보기 (예 : AllItems.aspx 또는 이와 관련된 사용자 지정보기 페이지)에 표시 될 때 숫자를 HyperLink에서 텍스트가있는 27 개의 FieldValue insted로 표시합니다. "In-Wai-Svr2 \ tjagtap"및 PostBackURL은 "/_layouts/userdisp.aspx?ID=27"로 표시됩니다.

이 항목을 편집하면이 항목을 볼 때 드롭 다운 목록에서 선택된 각각의 값, 즉 DispForm.aspx에서도 하이퍼 링크가 표시됩니다. 나는 createchildcontrol() 메서드에서 사용자 지정 논리를 writting하여 즉, 새 또는 편집 경우 ControlMode를 사용하여 드롭 다운 목록을 채우십시오. 표시되면 ItemFieldValue 유형 가져 오기 SPFieldUserValue로 캐스팅하고 해당하는 lookupid 및 값을 가져옵니다. URL을 만들고 HyperLink의 텍스트를 표시합니다.

사용자 목록 (27)의 네비게이션 인스톨레이션과 함께 HyperLink를리스트 뷰 페이지 (예 : AllItem.aspx)의 문자열로 가져 오는데 많은 시간을 소비했지만 아무런 도움이되지 않았다. 연구 결과에 따르면 html 코드를 지정하여 원하는대로 DisplayPatteren을 정의하는 조항이있는 필드 유형 정의 XML 파일을 사용하여 이러한 종류의 기능을 구현할 수있는 방법이 있음을 발견했습니다. 그러나 여기에 문제가 있습니다. 문제를 해결하려면 In-Wai-Svr2 \ tjagtap과 같은 앵커 태그를 만들기 위해 In-Wai-Svr2 \ tjagtap inorder와 같은 UserName (27)을 어떻게 얻을 수 있습니까? 난 열심히이 DisplayPatteren 아래 스위치의 기본 case 문 내 에서이 앵커 태그를 코딩하지만 그것은 AllItems.aspx에 필드 값을 인 - Wai - Svr2 \ tjagtap27로 즉, XML 파일에 정의 된 값이 문자열 값과 연결됩니다 (27).

위의 2 문제를 해결하는 데 도움을주십시오. 나는이 문제를 가능한 빨리 해결할 필요가있다.

감사 & 감사합니다, 테자스 Jagtap

답변

0

는 u는 GetFieldValueAsHtml()는 사용자 정의 필드 클래스의 방법 또는 사용자 정의 필드 컨트롤 클래스에서 어쩌면 RenderFieldForDisplay() 메소드를 오버라이드 (override)하는 것을 시도했다.

0

사용자 필드 유형에서 DisplayPattern CAML을 사용할 수 있습니까?

관련 문제