¿Podemos escribir un receptor de eventos que se active cuando se actualice cualquier lista? La listtemplateid que tenemos que especificar para un receptor de eventos hace que nuestro código sea específico para una variedad de listas. ¿Qué sucede si queremos que el código se ejecute para eventos en todas las listas de sitios?Adjuntar EventReceiver a todas las listas de un sitio sharepoint
Respuesta
Tengo el mismo requisito exacto.
tal vez es posible adjuntar receptor de eventos de sistema ContentType
(todos los tipos de contenido que se heredan, con id 0x)
`d comprobar si eso es posible mediante la creación de una función con un FeatureReceiver y programación de añadirla a Tipo de contenido del sistema. Algunos detalles here.
Mi camino en la búsqueda de una solución
Allright, hice algunas pruebas con aplicación de consola.
- intentado añadir
EventReceiver
al sistema (0x). Se llamó al método ContentType.Update (verdadero, falso) que actualiza todos los elementos secundarios - ni se actualizó el sistemaContentType
, ni childs. Resulta que no puede modificar esos contentTypes conReadOnly
||Sealed
atributo establecido enTRUE
- Trató de agregar EventReceiver al artículo (0x01)
ContentType
. Como se ve desde aquí, todosContentTypes
todavía heredan de ese (ver ContentType hierarchy). Puede haber tipos de contenido implementados personalizados que hereden del Sistema, pero no los que se realizan en la GUI. La actualización de este tipo de contenido verdaderamente actualiza todos los niñosContentTypes
(todos los tipos de contenido, excepto losReadOnly
oSealed
)
Cómo conectar un EventReceiver global para todos los artículos
lo tanto una solución que funcionaría sería el siguiente:
- Iterar todas las listas, establecen
Readonly
oSealed
en false si quieres ese tipo de contenido con queEventReceivers
. - añaden sus
EventReceiver
a tipos de contenido existentes en las listas (SPList.ContentTypes
) - Añadir EventReceiver a ContentType (
SPWeb.ContentTypes
) con id 0x01 así obtener nuevas listas EventReceiver añade automáticamente. Los tipos de contenido recién creados también heredaránEventReceivers
. También todos los subwebContentTypes
heredanEventReceivers
.
Los tres pasos pueden ser una aplicación de consola o un script de powershell. O una característica amplia colección de sitios con FeatureReceiver
El resultado
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
Lo siento, mi WSS se localiza, pero {,,, ...} significa añadí varios EventReceivers a tipos de contenido. Como puede ver, aquellos con el atributo Readonly
o Sealed
False no se modifican.
- 1. ¿Cómo se leen las listas de SharePoint de forma programática?
- 2. Threadsafe para todas las listas de
- 3. Columnas de archivos adjuntos múltiples en listas de SharePoint
- 4. Cómo crear sub-listas en sharepoint
- 5. Adjuntar un decorador a todas las funciones dentro de una clase
- 6. El sitio Sharepoint tarda un poco en cargarse a primera hora de la mañana
- 7. Permisos de sitio de SharePoint PowerShell
- 8. Eliminación de elementos de las listas y todas las referencias a ellos
- 9. Sharepoint Web Service GetListItems no devuelve todas las filas
- 10. Alternativa de código abierto para listas de Sharepoint
- 11. Todas las combinaciones de una lista de listas
- 12. Acceso a la lista oculta de SharePoint
- 13. ¿Puedo crear un sitio Sharepoint en mi máquina local?
- 14. Cambiar el ícono de sharepoint para un sitio mediante programación
- 15. Representación de relaciones padre-hijo en listas de SharePoint
- 16. ASP.NET MVC 3: Adjuntar a las secciones
- 17. Agregar tuplas a las listas
- 18. SharePoint: ¿debería usar listas o una base de datos?
- 19. Favicon para todas las páginas de mi sitio web
- 20. ¿Cuál es una forma adecuada de almacenar variables globales a nivel de sitio en un sitio de SharePoint?
- 21. Adjuntar a un archivo de imagen
- 22. haskell quita todas las ocurrencias de un valor dado dentro de una lista de listas
- 23. Todas las permutaciones posibles de un conjunto de listas en Python
- 24. ¿Por qué document.cookie no muestra todas las cookies del sitio?
- 25. ¿Las listas de Python tienen un equivalente a dict.get?
- 26. Descargar todas las imágenes de un único directorio de un sitio web
- 27. Adjuntar TimeStamp a un nombre de archivo
- 28. Sharepoint: ¿cómo puedo encontrar todas las páginas que alojan un elemento web en particular?
- 29. ¿Cómo puedo implementar una aplicación Web Asp.net a un sitio de SharePoint 2010 usando WSP
- 30. Acceder a un sitio web de SharePoint desde una aplicación Java con autenticación Kerberos