Frage

Der Grund, warum der Ereignisempfänger für die Elementaktualisierung bei Dokumentbibliotheken zweimal ausgelöst wird, liegt im Ein-/Auschecken.

Außerdem kann es im Falle einer Dokumentbibliothek/-liste zweimal ausgelöst werden, wenn wir in diesem Elementaktualisierungsereignis die aktuellen Elementwerte aktualisieren.

Wie können wir diese beiden Fälle per Code behandeln?

War es hilfreich?

Lösung

Für das Szenario, in dem Sie derjenige sind, der den zweiten auslöst ItemUpdating Durch Ändern der Elementwerte können Sie die verwenden EventFiringEnabled Parameter (Sie sollten a try - catch -finally um es herum):

this.EventFiringEnabled = false;
// Do the changes
item.Update();
this.EventFiringEnabled = true;

Das andere Szenario ist schwieriger und der Grund, warum ich es verwende ItemUpdated Stattdessen wann immer möglich!

Sie könnten das überprüfen BeforeProperties, ListItem Und AfterPropertiesin deinem ItemUpdating Ereignisempfänger, um zu prüfen, ob Aktualisierungen vorgenommen werden, bei denen Sie Maßnahmen ergreifen müssen.Wenn nicht, dann einfach return.

Hier ist eine Anleitung für den Fall, dass Sie ihn verwenden können .BeforePropertiesund wann du in die gehen solltest .ListItem stattdessen

Andere Tipps

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top