Frage

Ich muss die alte ID des Elements im Papierkorb kennen oder gibt es eine Möglichkeit, seine ID vor dem Löschen in diesem Element zu speichern.Wenn ein Element gelöscht wird, wird ein neues SPRecycleBinItem im Papierkorb erstellt.Und die einzige gespeicherte Information über das alte Element ist DirName.Aber ich brauche mehr Informationen.

War es hilfreich?

Lösung

Ich habe dieses Problem gelöst.Es gibt eine Eigenschaft wie LeafName in SPRecycleBinItem , die mit der früheren ID in SPListItem für Dateien (nicht für Ordner) identisch ist.Wenn SPListItem eine Datei wäre, wäre sein Blattname "id" + "_ .000" nach dem Löschen;Wenn SPListItem ein Ordner wäre, wäre sein Blattname der frühere Name von SPListItem.

Andere Tipps

Nun, Sie können natürlich eine Artikel-ID beim Löschen in einem Ereignisempfänger speichern und dort speichern, wo Sie sie einem Artikel im Papierkorb zuordnen können.

Ich denke jedoch, dass Sie eine Element-ID als Primärschlüssel verwenden und jetzt auf das Problem der ID-Änderung gestoßen sind.Die Verwendung der Artikel-ID als Schlüssel ist eine sehr schlechte Idee, da sie sich bei der Wiederherstellung auf Artikelebene durch Backup-Tools, beim Recycling und je nachdem, wie Sie sie verwenden, ändert;mit Versionskontrolle.

TL; DR - Ja, Sie können einen Ereignishandler verwenden, um die ID vor dem Recycling zu speichern, aber die ID für irgendetwas zu verwenden, ist eine wirklich schlechte Idee.

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