SharePoint 사이트의 모든 목록에 eventReceiver를 첨부하십시오
-
12-09-2019 - |
문제
목록이 업데이트 될 때 해고되는 EventReceiver를 작성할 수 있습니까? EventReceiver에 지정 해야하는 ListMeplateId는 코드가 하나의 목록에 명시 적으로 만듭니다. 모든 사이트 목록에서 이벤트에 대한 코드를 실행하려면 어떻게해야합니까?
해결책
정확히 같은 요구 사항이 있습니다.
아마도 이벤트 수신기를 시스템에 첨부 할 수 있습니다. ContentType
(모든 컨텐츠 유형은 ID 0x로 해당 하나를 상속합니다)
Featureseceiver와 함께 기능을 만들고 시스템 컨텐츠 유형에 프로그래밍 방식으로 추가하여 가능하는지 확인했습니다. 몇 가지 세부 사항 여기.
해결책을 찾는 길
Aldright, 나는 콘솔 앱으로 약간의 테스트를했습니다.
- 추가하려고했습니다
EventReceiver
시스템에 (0x). 메소드 contenttype.update (true, false)라고합니다. 시스템도 마찬가지였습니다ContentType
업데이트, 어린이. 해당 내용 유형을 함께 수정할 수 없다는 것이 밝혀졌습니다ReadOnly
||Sealed
속성으로 설정되었습니다TRUE
- 항목에 EventReceiver를 추가하려고했습니다 (0x01)
ContentType
. 여기에서 볼 수 있듯이 모두ContentTypes
여전히 그 중 하나에서 물려받습니다 (참조 ContentType 계층). 시스템에서 상속되는 사용자 정의 배포 된 컨텐츠 유형이있을 수 있지만 GUI로 만든 컨텐츠 유형이있을 수 있습니다. 이 콘텐츠 유형을 업데이트하면 모든 어린이가 실제로 업데이트되었습니다ContentTypes
(그를 제외한 모든 콘텐츠 유형ReadOnly
또는Sealed
)
모든 항목에 글로벌 eventReceiver를 첨부하는 방법
따라서 작동하는 솔루션은 다음과 같습니다.
- 모든 목록을 반복하고 설정하십시오
Readonly
또는Sealed
당신이 당신과 함께 해당 콘텐츠 유형을 원한다면 거짓으로EventReceivers
. - 당신의 추가
EventReceiver
목록의 기존 컨텐츠 유형에 (SPList.ContentTypes
) - ContentType에 이벤트 리페이버 추가 (
SPWeb.ContentTypes
) ID 0x01을 사용하여 새 목록이 EventReceiver가 자동으로 추가됩니다. 새로 생성 된 콘텐츠 유형도 상속됩니다EventReceivers
. 또한 모든 서브 웹ContentTypes
상속EventReceivers
.
세 단계는 모두 콘솔 응용 프로그램 또는 PowerShell 스크립트 일 수 있습니다. 또는 사이트 수집 와이드 기능 FeatureReceiver
결과
PS C:\Documents and Settings\Administrator> $web.contentTypes |ft id, name, EventReceivers, readonly, sealed
Id Name EventReceivers ReadOnly Sealed
-- ---- -------------- -------- ------
0x Sistēma {} False True
0x007F1DD730DB144C84... Darba kārtības vēsture {} True True
0x01 Ieraksts {, , , ...} False False
0x01003420C661289843... Darba kārtības ieraksts {, , , ...} False False
0x0101 Dokuments {, , , ...} False False
0x010100629D00608F81... Office datu savienoj... {} True False
0x010100B4CBD48E029A... Universālais datu sa... {} True False
0x010101 Veidlapa {, , , ...} False False
0x010102 Attēls {, , , ...} False False
0x010104 Nezināms dokumenta tips {} True False
0x010105 Lapu šablons {, , , ...} False False
0x010107 Lietotāja darbplūsma... {, , , ...} False False
0x010108 Wiki lapa {, , , ...} False False
0x010109 Pamatlapa {, , , ...} False False
0x01010901 Web daļu lapa {, , , ...} False False
0x01010A Saistīt ar dokumentu {, , , ...} False False
0x01010B Dublinas pamata kolo... {, , , ...} False False
0x0102 Notikums {, , , ...} False False
0x0103 Diskutējamais jautājums {, , , ...} False False
0x0104 Paziņojums {, , , ...} False False
0x0105 Saite {, , , ...} False False
0x0106 Kontaktpersona {, , , ...} False False
0x0107 Ziņojums {, , , ...} False False
0x0108 Uzdevums {, , , ...} False False
0x0108007122AD6D76CD... Darba kārtības uzdevums {, , , ...} False False
0x010801 Darbplūsmas uzdevums {, , , ...} False False
0x010802 Administratīvs uzdevums {, , , ...} False False
0x0109 Darbplūsmas vēsture {, , , ...} False False
0x010A Person {, , , ...} False False
0x010B SharePointGroup {, , , ...} False False
0x010C DomainGroup {, , , ...} False False
0x0110 Ziņa {, , , ...} False False
0x0111 Komentārs {, , , ...} False False
0x0116 Tālo Austrumu līgums {, , , ...} False False
0x0120 Mape {} False True
0x012001 RootOfList {} False True
0x012002 Diskusija {, , , ...} False False
죄송합니다. 내 WSS는 현지화되었지만 {,,, ...}는 컨텐츠 유형에 여러 eventReceivers를 추가했음을 의미합니다. 당신이 그것들을 볼 수 있듯이 Readonly
또는 Sealed
속성 False는 손대지 않았습니다.
제휴하지 않습니다 StackOverflow