Domanda

Io sono in ascolto su un particolare SPWeb utilizzando un SPWebEventReceiver che è con successo cottura su WebMoved evento.Quando il web è spostato l'aggiornamento di un elenco con la nuova posizione/titolo.

Quello che io vorrei essere in grado di fare è ascoltare quando il Web è rinominato .Posso fare da collegamento di un elemento di ascolto e di attesa per un evento di ItemUpdated?Se è così gradirei un piccolo snippet di codice!Grazie!

È stato utile?

Soluzione

Sembra che questo è un bug con lo SharePoint OM. Il ricevitore evento è chiaramente dovuto al fuoco quando il nome di un web è cambiato, ma non. E 'solo quando gli incendi URL del Web è cambiato.

Altri suggerimenti

Steve, Per quanto posso vedere, SPWebEventReceiver espone solo i seguenti eventi su uno SPWeb ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx )

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

ItemAdded è definita SPItemEventReceiver che è applicabile a SPListItem oggetti.

La proprietà Title di uno SPWeb è memorizzato in un elenco di proprietà ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx ).

Non appare, come si può attingere a tutti gli eventi quando .Update () viene chiamato sul sacchetto di proprietà, per esempio quando Titolo viene aggiornato.

  1. Direi che una ridenominazione del nome Web dovrebbe innescare WebMoved.
  2. titolo del sito rename innesca nessuna azione.

Domanda: Quali cambiamenti Vuoi tot tocca a? Poiché i metadati per esempio potrebbe essere memorizzati negli elenchi all'interno, che supporta un sacco di eventi.

Non credo che sia un bug, credo che sia semplicemente un errore di interpretazione di documentazione.Come lei ha affermato, la documentazione indica che il WebMoving e WebMoved eventi vengono attivati con l'url del sito che vengano modificati o rinominato:

da MSDN Doc:"Sincrona Prima dell'evento che si verifica prima di un sito Web esistente è stato rinominato o spostato in un altro oggetto padre."

Tuttavia, ciò che viene modificato nell'interfaccia utente NON è il "nome" del sito, ma il sito del titolo.L'oggetto SPWeb ha un "Nome" di proprietà che è accessibile tramite il Modello a Oggetti, e l'aggiornamento di tale Nome proprietà e chiamando SPWeb.Update (), infatti, attivare il WebMoved evento.Il guaio è che questa proprietà non è esposta attraverso il web-a base di impostazioni di pagina per il sito, solo il campo "Titolo" è esposto, e questo cambio di campo non attivare l'evento.Mentre questo sembra un po ' contro-intuitivo e anche fuorviante, se leggi la documentazione letteralmente, si sta comportando esattamente come descritto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top