Frage

ich auf einem bestimmten SPWeb höre einen SPWebEventReceiver verwenden, die erfolgreich Brennen auf der Seite WebMoved Veranstaltung. Wenn die Bahn bewegt wird aktualisiere ich eine Liste mit dem neuen Standort / title.

Was würde Ich mag zu können, ist tun zu hören, wenn das Web ist umbenannt . Muss ich tun dies, indem ein Element Hörer Anbringen und für eine ItemUpdated Ereignis warten? Wenn ja würde ich einen kleinen Code-Snippet zu schätzen wissen! Dank!

War es hilfreich?

Lösung

Es sieht aus wie das ein Fehler mit dem Sharepoint-OM ist. Der Ereignisempfänger eindeutig Feuer soll wenn der Name eines Web geändert wird, aber es funktioniert nicht. es wird nur ausgelöst, wenn die URL des Web geändert wird.

Andere Tipps

Steve, Soweit ich sehen kann, macht SPWebEventReceiver nur die folgenden Ereignisse auf einem SPWeb ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx )

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

ItemAdded in SPItemEventReceiver definiert, die anwendbar ist, Objekte SPListItem.

Die Eigenschaft Titel eines SPWeb befindet sich in einer Eigenschaft Tasche ( http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx ).

Es scheint nicht, wie Sie in alle Ereignisse tippen können, wenn .Update () auf der Eigenschafts genannt wird, z.B. wenn Titel wird aktualisiert.

  1. Ich würde sagen, dass eine Umbenennung des Web-Namen soll WebMoved auslösen.
  2. Site Titel Umbenennungs löst keine Aktion aus.

Frage: Welche Veränderungen wollen Sie tot tippen in? Da jede Metadaten zum Beispiel in Listen innerhalb gespeichert werden kann, die viele Veranstaltungen unterstützt.

Ich glaube nicht, dass es ein Fehler ist, ich glaube, es ist einfach eine Fehlinterpretation der Dokumentation. Wie Sie gesagt haben, zeigt die Dokumentation, dass das WebMoving und WebMoved Ereignisse durch die URL der Website ausgelöst werden, verändert oder umbenannt werden:

MSDN Doc : „Synchronous vor dem Ereignis, das auftritt, bevor eine bestehende Website hat zu einem anderen übergeordneten Objekt umbenannt oder verschoben worden.“

Doch was in der Benutzeroberfläche geändert wird ist nicht der „Name“ der Website, aber die Website des Titels. Das SPWeb Objekt hat eine Eigenschaft „Namen“, der durch das Objektmodell zugänglich ist, und die Aktualisierung dieser Eigenschaft Namen und ruft SPWeb.Update () in der Tat das WebMoved Ereignis auslösen. Das Problem ist, dass diese Eigenschaft nicht über die Web-basierte Einstellungsseite für die Site ausgesetzt ist, nur das Feld „Titel“ ausgesetzt ist, und diese Feldänderung löst nicht das Ereignis. Während dies ein wenig kontraintuitiv und sogar irreführend erscheint, wenn Sie die Dokumentation buchstäblich lesen, ist es genau so, wie dokumentiert verhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top