2010-03-25 6 views
0

SPFieldLookup 필드를 프로그래밍 방식으로 목록에 추가했습니다.SPFieldLookup을 목록에 프로그래밍 방식으로 추가 하시겠습니까?

내 목록보기를 확인했을 때 조회 필드가 항목에 연결되어 있음을 지정하지 않고 사용자 inerface에서 추가 한 것과 같은 것으로 나타났습니다.

프로그래밍 방식으로 조회 필드를 항목에 연결하도록 강제하는 방법이 있습니까?

+0

가 좋아 나는 그래서이 답이 아니다는 SharePoint의 사용할 수 당신이 링크가 죽었다는 SharePoint 인터페이스에서 감사 –

답변

1

SPFieldLookup 필드가있는 목록과 대상 목록을 모두 제공하는 경우 문제가 발생합니다. SPFieldLookup 필드는 기능 목록이 활성화 될 때 동적으로 만들어지는 GUID로 대상 목록을 지정해야하기 때문에 필드 정의에이 값을 정의 할 수 없습니다. 아직 존재하지 않으므로이 값을 정의 할 수 없습니다.

소스 목록의 SPFieldLookup 필드를 제외하고이 문제에 대한 해결책은 "원본"목록과 대상 목록을 모두 프로비저닝하는 것입니다.
그런 다음 기능 활성화 이벤트에서이 조회 필드를 프로그래밍 방식으로 추가합니다.이 조회 필드는 대상 목록에 대한 GUID가 있거나 적어도 찾을 수 있기 때문에 이제 수행 할 수 있습니다.

-1

필요한 모든 속성 (LookupField, LookupWebId 및 LookupList)을 채우고 나중에 필드를 업데이트() 했습니까?

아마도 http://www.alexbruett.net/?p=153이 내가 본 멋진 조각과 은 우리가이 목록 aList을 가지고 bList 이미 생성 가정하자 공유하고자합니다

+0

그것을 할 수있을 것입니다 있지만 프로그램 acheived 할 수없는 그것을 발견 유능한. 이것이 오프 사이트로 링크 할 때 주요 요점을 요약하는 좋은 사례입니다. – Amicable

0

도움이 될 것입니다. bList에서 값을 찾을 aList에 조회 열을 만드는 것이 필요합니다.

SPList aList = web.Lists["aList"]; 
SPList bList = web.Lists["bList"]; 
aList.Fields.AddLookup("Lookup", bList.ID, false); 
SPFieldLookup fldLookup = aList.Fields["Lookup"] as SPFieldLookup; 
fldLookup.LookupField = bList.Fields[SPBuiltInFieldId.Title].InternalName; 
fldLookup.Update(); 
관련 문제