Ich habe einen Ereignisempfänger geschrieben, der beim Ereignis 'ItemAdded' einer Seitenliste aktiviert wird. Der Code läuft gut, aber mein Problem ist dies - während des Aufrufs zu meinem Sub ItemAdded möchte ich den Wert eines Felds ändern, das zu dem aktuellen Listenelement gehört (in diesem Fall eine aspx-Seite).Verwenden eines Ereignisempfängers, um das Feld 'Titel' eines Elements zu aktualisieren
Die Idee ist, dass ich das Feld "Titel" als einen anderen Wert konfigurieren kann, den mein Ereignisempfänger konfiguriert, und zu dem Zeitpunkt, zu dem der Benutzer die Seite im Bearbeitungsmodus sieht, wurde der neue Titel für die Seite gespeichert . Hier ist mein aktueller Versuch:
Public Overrides Sub ItemAdded(ByVal properties As Microsoft.SharePoint.SPItemEventProperties)
Dim newItem As SPListItem = properties.ListItem
Dim currentSiteTitle As String = properties.OpenWeb().Title
UpdateItemTitle(newItem, currentSiteTitle)
newItem.Update()
'newItem.SystemUpdate()
End Sub
Wie Sie sehen können, habe ich versucht, beide Updates() und Systemupdate(), aber in jedem Fall, wenn der Benutzer auf der Seite zu überprüfen versucht, bekommen sie eine Nachricht dass die Seite extern geändert wurde. Beim Anzeigen der Seite hat sich der Titelfeldwert nicht geändert.
Ist das, was ich versuche, überhaupt möglich, oder gibt es einen besseren Weg?
Prost. Jas.
Beachten Sie, dass das ListItem im ItemAdding-Ereignis nicht verfügbar ist. Verwenden Sie stattdessen die AfterProperties []. –