2009-05-01 12 views
0

Einfach gesagt, ich habe eine benutzerdefinierte editForm.aspx in einer Dokumentbibliothek, die meine eigene benutzerdefinierte DLL verwendet. Wenn ein Benutzer einen Datensatz bearbeitet, kann ich alle mit der Datei verknüpften Eigenschaften aktualisieren. Wenn Sie jedoch das tatsächliche Dokument aktualisieren (dh ersetzen) und dann Aktualisieren() (oder SystemUpdate()), erhalten Sie Folgendes:Update-Dateien in SharePoint-Dokumentbibliothek

Die Datei BLAH.doc wurde am 01. Mai 2009 09:41:12 +0100 von DOMAIN \ ACCOUNT geändert.

Die Datei wird ersetzt, aber keine Dateieigenschaften werden aktualisiert, daher sind Pfad und Dateiname identisch mit der alten Version !?

dieser Eintrag: http://hristopavlov.wordpress.com/2008/05/14/uploading-a-file-event-receivers-the-file-has-been-modified-by/ schlägt Ereignis recievers mit, genau wie jeder, der ein ähnliches Problem mit Workflows hat, DisableEvents() verwenden. Was großartig ist, aber ich habe keine Ahnung, wie ich meine Bearbeitungsform ändern kann, um mit einem Ereignisempfänger zu arbeiten. Gibt es Dokumentation/Tutorials zum Aktualisieren einer Datei in einer Dokumentbibliothek und wie verwenden Sie Ereignisempfänger, um dies zu erreichen?

Antwort

1

Der Ereignisempfänger würde vollständig vom Editierformular getrennt sein - Sie machen nichts Besonderes im Editierformular, außer dem Speichern, was auch immer der Benutzer eingegeben hat. Der Ereignisempfänger wird aufgerufen, wenn das Element entweder von Ihrem Formular oder von einem der Standardmodi geändert wird.