Pregunta

Estoy escuchando en un SPWeb determinada utilizando una SPWebEventReceiver que es éxito a disparar en la WebMoved evento. Cuando se presente la web puedo actualizar una lista con la nueva ubicación / título.

Lo que me gustaría ser capaz de hacer es escuchar para cuando la banda es renombrado . Hago esto conectando un receptor de elementos ya la espera de un evento ItemUpdated? Si lo que agradecería un pequeño fragmento de código! Gracias!

¿Fue útil?

Solución

Parece que este es un error con el OM SharePoint. El receptor de eventos se supone claramente al fuego cuando se cambia el nombre de una web, pero no. sólo se activa cuando se cambia la dirección URL de la web.

Otros consejos

Steve, Por lo que yo puedo ver, SPWebEventReceiver solamente expone los siguientes eventos en un SPWeb ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx )

  • SiteDeleted
  • SiteDeleting
  • WebDeleted
  • WedDeleting
  • WebMoved
  • WebMoving

ItemAdded se define en SPItemEventReceiver que es aplicable a SPListItem objetos.

La propiedad Título de un SPWeb se almacena en una bolsa de propiedades ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx ).

No parece como que puede tocar en cualquier evento cuando .Update () se llama en la bolsa de propiedades, por ejemplo, cuando Título se actualiza.

  1. yo diría que un cambio de nombre del nombre de Web debe dar lugar a WebMoved.
  2. Título del sitio de cambio de nombre desencadena ninguna acción.

Pregunta: ¿Qué cambios que desea hacer tot grifo en? Debido a que cualquier metadatos, por ejemplo, podría ser almacenada en las listas en el interior, que soporta un montón de eventos.

No creo que es un error, creo que es simplemente una mala interpretación de la documentación. Como se ha indicado, la documentación indica que el WebMoving y WebMoved eventos se desencadenan por la URL del sitio que está siendo modificado o ser rebautizado:

MSDN Doc : "Synchronous antes evento que se produce antes de un sitio web existente ha cambiado de nombre o movido a un objeto padre diferente."

Sin embargo, lo que se cambió en la interfaz de usuario NO es el "nombre" de la página, pero el título del sitio. El objeto SPWeb tiene una propiedad "Nombre" que es accesible a través del modelo de objetos, y la actualización de este inmueble Nombre y llamando SPWeb.Update () de hecho activar el evento WebMoved. El problema es que esta propiedad no está expuesto a través de la página web basada en la configuración para el sitio, sólo el campo "Título" se expone, y este cambio de campo no activa el evento. Si bien esto parece un poco contra-intuitivo e incluso inducir a error, si se lee la documentación, literalmente, es comportarse exactamente como se documenta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top