SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




multiuser-lookup field returns null in itemUpdating afterproperties

Geprüfte Antwort Dieser Beitrag hat 6 Antworten

Ohne Rang
163 Beiträge
Markus Sallmutter erstellt 13 Juli 2012 11:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Halle alle zusammen!

Ich arbeite derzeit an einem ItemUpdating EventReceiver, der überprüfen soll ob sich die User in einem multiuser field geändert haben. Ich bekomme die User die vor dem ändern drin gestanden sind mit properties.listItem[field.Title].

Die User, die nach dem ändern des Items in dem Feld stehen sollte ich eigentlich mit properties.afterproperties[field.Title] bekommen, jedoch bekomme ich hier immer nur null zurück.

Ich verwende VS2010 mit C#.Net 3.5 auf Sharepoint 2010

Hat jemand dieses problem schon einmal gehabt und eventuell eine lösung für mich? Bin für jede Hilfe dankbar.

Alle Antworten

Ohne Rang
508 Beiträge
Tom Scheuermann Als Antwort am 13 Juli 2012 11:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi !

Der ItemUpdating wird ausgeführt, bevor das Element gespeichert wird. Hier hast Du nur die BeforeProperties .....
AfterProperties gibt's nur im ItemUpdated.

Greets

Tom

ts (-at-) computer-kreativ.de

Microsoft Certified IT Professional: SharePoint 2010 Administration
Microsoft Certified Technoligie Specialist: SharePoint 2010 Configuring

Ohne Rang
163 Beiträge
Markus Sallmutter Als Antwort am 13 Juli 2012 11:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also laut dem nachfolgenden Link ist dies nicht so und es funktioniert mit afterproperties auch für alle anderen Feldtypen nur bei dem multiuser-lookup value nicht...

http://sharepointstudy.wordpress.com/2010/11/11/properties-afterproperties-and-properties-beforeproperties/

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Juli 2012 12:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mit den AfterProperties bist Du schon richtig, aber Du mußt beachten, daß alle Feldinhalte dort als String gespeichert sind.

An ein Nachschlagefeld mit Mehrfachauswahl (Personenfelder sind auch Nachschlagefelder) kommst Du so:
SPFieldLookupValueCollections values = new SPFieldLookupValueCollection(properties.AfterProperties["Feldname"] as string);

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
508 Beiträge
Tom Scheuermann Als Antwort am 13 Juli 2012 12:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wieder was dazu gelernt :-)

Greets

Tom

ts (-at-) computer-kreativ.de

Microsoft Certified IT Professional: SharePoint 2010 Administration
Microsoft Certified Technoligie Specialist: SharePoint 2010 Configuring

Ohne Rang
163 Beiträge
Markus Sallmutter Als Antwort am 13 Juli 2012 12:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die Antworten!

Ja das mit den Strings war mir klar, mein Fehler war darauf zurückzuführen, dass man auf die AfterProperties mit dem Internal FieldName zugreifen muss und beim listitem aber den displayname verwenden kann. Deswegen dachte ich das die Afterproperties nichts enthalten, obwohl einfach nur der InternalName aufgrund einer Namens änderung der Spalte zufällig anders hieß. Jetzt funktioniert alles Danke Nochmal!

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Juli 2012 12:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich kann da nur empfehlen grundsätzlich immer den InternalName zu verwenden - egal wo. Ein DisplayName kann sich einfach zu schnell ändern...

Viele Grüße
Andi
af @ evocom de
Blog