SharePoint 토론 게시판에는 토론과 메시지라는 두 가지 별도의 콘텐츠 형식이 있습니다. 토론은 토론의 전체 스레드를 나타내는 폴더이며, 메시지는 해당 폴더의 각 회신 항목에 대한 것입니다.
필드를 목록에 추가하는 대신 해당 토론 만 사용할 수 있도록하려면 해당 보드의 토론 콘텐츠 형식에 특별히 추가하고 메시지 콘텐츠 형식에 추가하지 않도록합니다 (제거 만약 있다면). 실제로 모든 응답의 범주 필드를 갖고 싶어하고 부모 논의와 같은 값을 가지고있는 경우
는, 불행히도 당신은 조금 까다을하고 일부 이벤트 핸들러를 사용해야합니다. 아직 익숙하지 않은 경우 기본 예제는 this article을 읽어보십시오. "ItemAdding"또는 "ItemAdded"이벤트를 생성하고 토론 게시판에 첨부해야합니다. 이 이벤트 수신기는 먼저 추가되는 항목이 메시지 또는 토론 (item.ContentType.Name.Equals("Message")
)인지 확인해야합니다. 그런 다음 부모를 검색하십시오. 메시지의 부모 ID는 표시 이름이 "Parent Folder Id"인 필드에 저장됩니다. 상위 항목에 대한 범주 값을 검색 한 다음 해당 항목과 일치하도록 메시지 범주 값을 설정합니다. 마지막 단계에서 편집 양식에 메시지 내용 유형의 범주 필드가 표시되지 않도록하려면 해당 토론 게시판의 해당 내용 유형에있는 해당 필드의 "ShowInEditForm"속성을 "false"로 바꿔야합니다. 간단한 list.ContentTypes["Message"].Fields["Category"].ShowInEditForm = false;
을 사용하여 개체 모델에서이 작업을 수행 할 수 있습니다. 여기서 list
은 토론 게시판 인스턴스입니다.