Czy możemy napisać odbiornik zdarzenia, który zostanie uruchomiony, gdy jakakolwiek lista zostanie zaktualizowana. Lista elementów, które musimy określić dla odbiornika zdarzeń, sprawia, że nasz kod jest specefyczny dla jednego rodzaju list. A co jeśli chcemy, aby kod był wykonywany dla zdarzeń na wszystkich listach witryny?Dołącz EventReceiver do wszystkich list witryny SharePoint
Odpowiedz
Mam dokładnie to samo wymaganie.
Może to jest możliwe, aby dołączyć odbiornik zdarzenia do systemu ContentType
(wszystkie typy zawartości dziedziczyć, że jeden z identyfikatorem 0x)
`d sprawdzić, czy to możliwe poprzez stworzenie funkcji z FeatureReceiver i programowo dodając go do Typ zawartości systemu. Niektóre szczegóły here.
Moja droga na znalezienie rozwiązania
porządku, zrobiłem kilka testów z aplikacji konsoli.
- Próbowano dodać
EventReceiver
do Systemu (0x). Wywoływana metoda ContentType.Update (true, false), która aktualizuje wszystkie elementy podrzędne - , ani nie zaktualizowała systemuContentType
, ani potomków. Okazuje się, że nie można modyfikować tych typów treści za pomocąReadOnly
||Sealed
atrybut ustawiony naTRUE
- Próbowałem dodać EventReceiver do pozycji (0x01)
ContentType
. Jak widać stąd wszystkieContentTypes
nadal dziedziczą z tego (patrz ContentType hierarchy). Mogą istnieć niestandardowe rozmieszczone typy zawartości dziedziczące po Systemie, ale nie te utworzone w GUI. Aktualizacja tego typu treści prawdziwie zaktualizowane wszystkie dzieciContentTypes
(wszystkie typy zawartości wyjątkiemReadOnly
lubSealed
)
Jak dołączyć globalny EventReceiver do wszystkich elementów
więc rozwiązanie, które będzie działać będzie wyglądać następująco:
- iteracyjne wszystkie listy, ustaw
Readonly
lubSealed
false jeśli chcesz te typy zawartości z wamiEventReceivers
. - Dodać
EventReceiver
do istniejących typów zawartości w listach (SPList.ContentTypes
) - Dodaj EventReceiver do contenttype (
SPWeb.ContentTypes
) id 0x01 więc nowe listy dostać EventReceiver dodawane automatycznie. Nowo utworzone typy treści również odziedzicząEventReceivers
. Również wszystkie subwebContentTypes
dziedzicząEventReceivers
.
Wszystkie trzy kroki mogą być aplikacją konsoli lub skryptem powłoki. Lub witryny szeroki zbiór funkcji z FeatureReceiver
Wynik
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
Niestety, mój WSS jest zlokalizowana, ale {,,, ...} oznacza dodałem kilka eventreceivers do typów zawartości. Jak widać te z atrybutem False atrybutu Readonly
lub Sealed
są nietknięte.
- 1. Uprawnienia do witryny SharePoint PowerShell
- 2. Dołącz statyczną mapę witryny do Liferay
- 3. Jquery: Dołącz querystring do wszystkich linków
- 4. sharepoint: Dodaj istniejącą kolumnę witryny do istniejącego typu zawartości Programowo
- 5. Visual Studio 2012: nie można podłączyć do witryny SharePoint
- 6. Jak przesłać plik do witryny SharePoint za pomocą skryptu pythonowego
- 7. Dostęp do witryny SharePoint z aplikacji Java z uwierzytelnianiem Kerberos
- 8. Przenoszenie stron Wiki z witryny One Sharepoint do innej
- 9. wartość Dołącz do jednej listy w słowniku dołącza wartość wszystkich list w słowniku
- 10. Jak uzyskać listę wszystkich użytkowników w SharePoint
- 11. Dołącz dll innych firm w projekcie Sharepoint podczas pakowania wsp
- 12. Uwierzytelnianie witryny Sharepoint z usługi w tle i przesyłanie pliku
- 13. Jak ustawić domyślne otwarcie list odsyłania do programu SharePoint w nowym oknie?
- 14. Usługi raportowania: Dołącz do wszystkich pól w zestawie danych
- 15. Dołącz elementy do tablicy - pętla
- 16. Alternatywa dla otwartych źródeł do list Sharepointa
- 17. Pobierz wybraną opcję dla wszystkich list DropDown
- 18. Kryteria Hibernowania dołącz jedno zapytanie do wielu
- 19. MySQL dołącz do klauzuli gdzie
- 20. Dołącz nagłówek do wyniku "grep"
- 21. MySQL - Dołącz do 2 tabel
- 22. Usługa sieci Web Sharepoint GetListItems nie zwracające wszystkich wierszy
- 23. Dołącz do strumienia CloudBlockBlob
- 24. Dołącz bajt do łańcucha?
- 25. Dołącz do std :: array
- 26. Dołącz słownik do słownika?
- 27. Dołącz NSInteger do NSMutableData
- 28. Dołącz Whitespace do stringbuildera?
- 29. OGRANICZENIE DOŁĄCZ DO SQL
- 30. Dołącz TextView do RecyclerView