2010-05-03 2 views
6

한 웹에서 다른 웹으로 사용자 지정 콘텐츠 형식을 복사하려고합니다. 난 주위에 검색 해봤 FieldLinks 및 필드를 사용하여 몇 가지 예제를 발견했다. 필자는 소스 웹에서 FieldLink를 가져올 때 3 개의 필드를 얻었으므로 어느 것이 사용되는지는 알지 못합니다. Fields에서 검색하는 동안 나에게 2 개의 필드 만 반환되었습니다 ... 맞춤 필드가 없습니다. 인터페이스를 통해 필드를 추가 했으므로 필드를 적절한 수준으로 추가했는지 확실히 알 수 있습니다. 그러나 코드를 사용하여 코드를 검색 할 때 숫자가 합쳐지지 않습니다.Sharepoint의 필드 링크와 필드의 차이

이상한 문제 외에도 FieldLinks와 Fields의 차이점을 알고 싶습니다. 콘텐츠 유형 (프로그래밍 방식)에서 어떤 것을 사용해야합니까?

감사합니다.

답변

10

SPFields는 필드 자체이며 SPFieldLinks는 필드를 참조합니다. This is a good read that will explain things in detail. 일반적으로 실제 내용 형식 정의을 작업 할 때 SPFieldLinks를 사용하는 것이 더 안전합니다. 그러나 여기서 간단히 요약 해 보겠습니다.

목록 및 웹에는 필드 데이터가있는 실제 필드가 들어 있습니다. 반면에 컨텐트 유형은 필드 참조를 보유하며, 단순히 필드 또는 목록의 해당 필드를 가리 킵니다. 콘텐츠 유형에는 SPFieldLinkCollection과 SPFieldCollection이 모두 있기 때문에 약간 혼란 스럽습니다.

SPFieldLinkCollection은 콘텐츠 형식의 실제 정의에 사용되며 한 웹에서 다른 웹으로 콘텐츠 형식을 복사하는 상황에서 사용하려는 것입니다. SPFieldLink는 콘텐츠 형식에 대한 XML 스키마의 실제 요소에 해당합니다.

콘텐츠 형식의 SPFieldCollection을 호출하고 그 중에서 Field를 검색 할 때 실제로 발생하는 것은 콘텐츠 형식이 해당 필드 참조를 검사하고 목록/Web에서 실제 내용을 찾는 것입니다 들. 기본적으로 조회가 작동하는 것과 같은 방식으로 SPFieldCollection을 생각하십시오. 조회 값과 조회 소스가 없으면 쓸모가 없습니다.

+0

설명해 주셔서 감사합니다. 내 상황은 콘텐츠 유형의 SPFieldLinks를 확인할 때 3 가지 필드 링크 (올바른 정보)를 볼 수 있다는 것입니다. 그러나 SPField를 확인하면 2 개의 필드 만 볼 수 있습니다 ... 사용자 정의 열이 없습니다. – BeraCim

+0

... 콘텐츠 유형 및 열은 인터페이스를 통해 추가되며 프로그래밍 방식으로 차이가 발생하면 열이 추가됩니다. – BeraCim

+0

SP2013 doc [here] (https://msdn.microsoft.com/en-us/library/office/microsoft.sharepoint.spcontenttype.fieldlinks.aspx) (주의 사항 아래에 있음)이 요점을 강화하므로 여전히 위 - 지금까지. – jpaugh