문제

_layouts 폴더에 배포 된 사용자 지정 SharePoint 응용 프로그램 페이지가 있습니다.사용자 지정 콘텐츠 유형에 대한 사용자 지정 "새 양식"입니다.이 페이지와 상호 작용하는 동안 목록에 항목을 추가해야합니다.페이지가 처음로드되면 SPContext.Current.List를 사용하여 작업중인 현재 목록을 볼 수 있습니다.그러나 양식을 채우고 양식이 자체에 다시 게시되고 IsPostBack이 true이면 SPContext.Current.List가 null이므로 내 항목을 추가해야하는 목록을 찾을 수 없습니다.

예상인가요?

포스트 백 전체에서 내 컨텍스트 목록에 대한 정보를 유지하려면 어떻게해야합니까?asp : hidden 컨트롤을 내 목록의 GUID로 채운 다음 포스트 백에서 다시 가져와야합니까?안전한 것 같습니다.

FWIW, 이것은 MOSS 2007 Standard 버전입니다.

도움이 되었습니까?

해결책

일반적으로 내 기능을 추가하려고 할 때 제품 그룹이 취한 접근 방식을 그대로 복사합니다. 이 경우 목록 정의 자체를 통해 자체 편집 /보기 / 추가 페이지를 추가합니다.

안타깝게도 오픈 소스가 아닌 자체 사용자 지정 "새"양식이 필요한 솔루션을 만들었습니다. 관심이 있으시면 "태그 된 링크"(SharePoint 용 소셜 북마크)라는 이름을 다운로드 할 수 있습니다. 내 블로그의 링크.

몇 가지 힌트와 팁을 제공하기 위해 다음 사항에 따라 올바른 방향으로 나아가 야합니다.

  1. 새 목록 정의를 만들었습니다.
  2. 새 콘텐츠 유형 생성 콘텐츠 유형에서 해당 양식의 "중간"비트에 표시되는 내용을 결정하는 렌더링 템플릿을 참조하는 고유 한 "양식 템플릿"을 정의 할 수 있습니다.
  3. 표준 렌더링 템플릿을 복사했지만 필요합니다.
  4. 모든 것을 솔루션으로 정리하고 배포했습니다.

    내 렌더링 템플릿에는 실제로 저장 중에 수행해야하는 많은 추가 작업을 수행 한 재정의 된 "저장"버튼이 포함되어 있습니다.

    어쨌든 제 생각에는 너무 많은 작업이지만 제품 개발자가 취하는 표준 접근 방식과 가장 가까운 것 같습니다. 자세한 내용이 필요한 경우 알려 주시면 단계별 블로그 게시물을 작성할 수 있는지 확인해 보겠습니다.하지만 이것이 올바른 방향으로 나아가는 데 도움이되기를 바랍니다.

다른 팁

양식 템플릿에서는 할 수없는 작업을 _Layouts 파일에서 할 수 있다면 놀랄 것입니다.당신은 당신의 처분에 거의 동일한 기술을 가지고 있습니다.

SharePoint가 ListItems 및 Layouts 페이지 (예 : 목록 항목의 "Manage Permissions")에서 작동하는 방식을 살펴보면 쿼리 문자열을 통해 일부 변수를 전달하는 것을 알 수 있습니다. ? obj= {76113B3A-FABA-4389-BC85-4BB2CC5AB423}, 6, LISTITEM & List= {76113B3A-FABA-4389-BC85-4BB2CC5AB423}

아마도 이러한 값을 프로그래밍 방식으로 사용할 때마다 컨텍스트를 다시 가져올 수 있습니다.

사용자 지정 "새 양식"을 사용하지 않으므로 적용되지 않을 수 있습니다.사용자 지정 콘텐츠 형식에 이벤트 수신기를 추가 한 다음 ItemAdded 또는 ItemAdding 이벤트에서 사용자 지정 코드를 수행합니다.이 코드는 이벤트가 목록에 추가 될 때 발생합니다.이벤트 수신기 속성을 사용하여 상위 목록, 웹 및 사이트로 이동할 수 있습니다.

맞춤 양식을 사용하고 있기 때문에 여기서 내 문제가 "특별"하다고 생각하고 싶습니다. 사용자 지정 FormTemplate 대신 사용자 지정 양식을 사용하기로 선택했습니다. SharePoint 목록과 비슷하지 않은 많은 작업을 수행하고 있기 때문입니다 (타사 앱에서 정보를 얻기 위해 ajax 호출을 수행 한 다음이를 기반으로 일부 동적 양식 요소 생성). 그 ajax 결과, 포스트 백에서 해당 데이터의 후속 처리). 일반적인 커스텀 렌더링 템플릿 메커니즘 내에서 이것을 시도하는 것은 악몽이라고 생각했습니다.

또한 목록 정의 자체에 사용자 지정 양식 선언을 제공 할 수 없다고 생각합니다.이 목록과 관련된 여러 콘텐츠 유형이 있고 각 콘텐츠 유형에 자체 사용자 지정 양식이 있기 때문입니다 (다른 유형은 고맙게도 훨씬 더 간단합니다 ).

사실, 숨겨진 필드에 목록 GUID를 유지하는 간단한 방법은이 특정 문제를 해결하는 데 매우 적은 영향을 미치는 방법이었습니다. 내 주요 관심사는 여기에 포스트 백 할 때 SPContext가 왜 모든 유용성을 잃는 지 모르겠다는 것입니다. 이로 인해 내가 뭔가 잘못하고 있다고 생각하게됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top