Frage

Meine Benutzerprofile haben einige benutzerdefinierte Eigenschaften. Jetzt muss ich eine Liste aller Werte erhalten, die diese benutzerdefinierte Eigenschaft für jeden Benutzer hat. Dieser Code gibt einen Fehler zurück, den "Spalte" Division "nicht existiert. Es wurde möglicherweise von einem anderen Benutzer gelöscht".

Ist das der richtige Ansatz? Es gibt viele Benutzer und mögliche viele unterschiedliche Werte.

 SPListItemCollection userInformationList = SPContext.Current.Web.SiteUserInfoList.Items;
  var divisions= (from SPListItem userItem in userInformationList.Items where userItem["Division"] != null select userItem["Division"]); 
War es hilfreich?

Lösung

Überprüfen Sie das GetUserProfile von UserProfilemanager. Sie erhalten das gesamte Objekt, sollte der richtige Ort sein, um nach einer Liste aller benutzerdefinierten Eigenschaften zu suchen.

Ich arbeite an einem fast simliarischen Webpart. Ich versuche, nur ein paar benutzerdefinierte Eigenschaften anzuzeigen.

hoffe zu helfen

http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofilemanager.aspx

Andere Tipps

Verwenden Sie zunächst noch nie Linq auf diese Weise in SharePoint! Sie werden die vollständige Benutzerinformationsliste aus der Datenbank abrufen, wenn Sie auf die Eigenschaft .Iitems klicken! Verwenden Sie stattdessen eine CAML -Abfrage, um die Benutzer mit dem SPQuery -Objekt zu "durchsuchen".

Ich würde empfehlen, dass Sie das verwenden U2U CAML Query Builder Um Ihre Abfrage zu erstellen - mit diesem Tool erhalten Sie den richtigen Spalten und den Spaltennamen.

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