Question

Je suis à l'écoute sur un SPWeb particulier à l'aide d'un SPWebEventReceiver qui est avec succès tirer sur le WebMoved événement. Lorsque le Web est déplacé mettre à jour une liste avec le nouvel emplacement / titre.

Ce que je voudrais être en mesure de faire est d'écouter quand le Web est renommé . Est-ce que je fais cela en attachant un écouteur d'élément et d'attendre un événement ItemUpdated? Si oui, je vous serais reconnaissant un petit bout de code! Merci!

Était-ce utile?

La solution

Il ressemble à ceci est un bug avec le SharePoint OM. Le récepteur d'événements est clairement censé tirer lorsque le nom d'une bande est changé, mais il ne fonctionne pas. il ne se déclenche que lorsque l'on a changé l'URL du Web.

Autres conseils

Steve, Pour autant que je peux voir, SPWebEventReceiver expose que les événements suivants sur un SPWeb ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx )

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

ItemAdded est défini dans SPItemEventReceiver qui est applicable à SPListItem objets.

La propriété d'un titre SPWeb est stocké dans un sac de propriété ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx ).

Il ne semble pas que vous pouvez puiser dans les événements lorsque .Update () est appelée sur le sac de la propriété, par exemple lorsque le titre est mis à jour.

  1. Je dirais qu'un changement de nom du nom du Web devrait déclencher WebMoved.
  2. Titre du site renommage ne déclenche pas l'action.

Question: Quels changements que vous voulez taper dans tot? Parce que les métadonnées, par exemple, pourraient être stockés dans des listes à l'intérieur, qui prend en charge de nombreux événements.

Je ne crois pas que ce soit un bug, je crois qu'il est tout simplement une mauvaise interprétation de la documentation. Comme vous l'avez dit, la documentation indique que le WebMoving et les événements WebMoved sont déclenchées par l'URL du site en cours de modification ou d'être renommé:

MSDN Doc : « synchrone avant l'événement qui se produit avant un site Web existant a été renommé ou déplacé vers un objet parent différent. »

Cependant, ce qui sera changé dans l'interface utilisateur n'est pas le « nom » du site, mais le titre du site. L'objet SPWeb a une propriété « Name » qui est accessible via le modèle d'objet, et la mise à jour que la propriété Nom et appelant SPWeb.Update () fait en fait déclencher l'événement WebMoved. Le problème est que cette propriété ne soit pas exposé à travers les paramètres Web page pour le site, seul le champ « Titre » est exposé, et ce changement de champ ne déclenche pas l'événement. Bien que cela semble un peu contre-intuitif et même trompeur, si vous lisez la documentation littéralement, il se comporte exactement comme documenté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top