Chaud pour obtenir la propriété utilisateur personnalisée à partir UserInformationList
-
16-10-2019 - |
Question
Mes profils d'utilisateurs ont des propriétés personnalisées. Maintenant, je dois obtenir une liste de toutes les valeurs que cette propriété personnalisée a sur tout utilisateur. Ce code renvoie une erreur « La colonne « division »n'existe pas. Il peut avoir été supprimé par un autre utilisateur ».
Est-ce l'approche de droit? Il y a beaucoup d'utilisateurs et de nombreuses valeurs possibles distinctes.
SPListItemCollection userInformationList = SPContext.Current.Web.SiteUserInfoList.Items;
var divisions= (from SPListItem userItem in userInformationList.Items where userItem["Division"] != null select userItem["Division"]);
La solution
Vérifier la GetUserProfile de UserProfileManager. Vous obtenez l'objet entier, devrait être le bon endroit pour rechercher une liste de toutes les propriétés personnalisées ..
Je travaille sur un webpart presque simliar .. im essayant d'afficher seulement quelques propriétés personnalisées ..
espère aider
Autres conseils
Tout d'abord, ne jamais utiliser LINQ de cette manière dans SharePoint! Vous récupérer la liste complète d'informations utilisateur à partir de la base de données lors de la frappe la propriété .Items! Au lieu d'utiliser une requête CAML à « rechercher » pour les utilisateurs à l'aide de l'objet SPQuery.
Je vous recommande d'utiliser le U2U CAML Query Builder pour construire votre requête - à l'aide de cet outil, vous obtiendrez les colonnes correctes et nom de la colonne
.