2010-05-12 4 views
0

범주라는 추가 열이있는 SharePoint 사이트에 토론 게시판이 있습니다. 새 토론이 만들어지면 범주를 묻는 메시지가 표시되고 물론 이것은 의도적으로 설계된 것입니다.분류 된 SharePoint 토론 - 답장시 부모 범주에 대한 기본 범주

토론에 답글을 달면 범주를 다시 묻는 것이 문제입니다.

어떻게 응답 기능을 분리하여 범주가 프롬프트되지 않고 카테고리가 상주하는 토론의 범주로 설정되도록 할 수 있습니까?

SharePoint Designer에서 NewForm.aspx 복사본을 편집하려고 시도했지만 표시되는 필드가 아닌 사용중인 WebPart 만 편집 할 수 있습니다.

답변

2

SharePoint 토론 게시판에는 토론과 메시지라는 두 가지 별도의 콘텐츠 형식이 있습니다. 토론은 토론의 전체 스레드를 나타내는 폴더이며, 메시지는 해당 폴더의 각 회신 항목에 대한 것입니다.

필드를 목록에 추가하는 대신 해당 토론 만 사용할 수 있도록하려면 해당 보드의 토론 콘텐츠 형식에 특별히 추가하고 메시지 콘텐츠 형식에 추가하지 않도록합니다 (제거 만약 있다면). 실제로 모든 응답의 범주 필드를 갖고 싶어하고 부모 논의와 같은 값을 가지고있는 경우


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

관련 문제