J'utilise le modèle d'objet côté client géré dans SharePoint 2010. Et je veux obtenir loginaname strong> de la liste des utilisateurs forts> à la liste des tâches. P>
dans le modèle d'objet côté serveur I utilise spfielguervalue.user.loginname pour obtenir cette propriété mais dans le modèle d'objet côté client Fielduerservalue.User n'existe pas. P>
Comment puis-je résoudre cette situation? p>
merci p>
4 Réponses :
Vous obtenez la colonne qui, comme le championnalservalue de la liste, une fois que vous avez utilisé la valeur d'identification de la recherche, puis sur la liste des informations utilisateur Sites. Dans l'exemple ci-dessous, je cache les résultats pour éviter de rechercher le même identifiant plus d'une fois que la requête peut être chère.
Voici le code pour cela. J'ai pris un exemple de champ attribué à partir de la liste des tâches. J'espère que cela aide.
public static User GetUserFromAssignedToField(string siteUrl) { // create site context ClientContext ctx = new ClientContext(siteUrl); // create web object Web web = ctx.Web; ctx.Load(web); // get Tasks list List list = ctx.Web.Lists.GetByTitle("Tasks"); ctx.Load(list); // get list item using Id e.g. updating first item in the list ListItem targetListItem = list.GetItemById(1); // Load only the assigned to field from the list item ctx.Load(targetListItem, item => item["AssignedTo"]); ctx.ExecuteQuery(); // create and cast the FieldUserValue from the value FieldUserValue fuv = (FieldUserValue)targetListItem["AssignedTo"]; Console.WriteLine("Request succeeded. \n\n"); Console.WriteLine("Retrieved user Id is: {0}", fuv.LookupId); Console.WriteLine("Retrieved login name is: {0}", fuv.LookupValue); User user = ctx.Web.EnsureUser(fuv.LookupValue); ctx.Load(user); ctx.ExecuteQuery(); // display the user's email address. Consol.writeLine("User Email: " + user.Email); return user; }
LookupValue me donne le nom d'affichage et non le nom de connexion.
Comment obtenir l'identifiant d'email ici?
@Samolpp - L'objet utilisateur dispose d'une propriété de messagerie pouvant être utilisée pour afficher l'adresse e-mail. Voir cette documentation - docs.microsoft.com/en-us/previous-versions/Office/...
Tout ce qui précède a travaillé pour moi, mais au lieu de: p>
J'ai utilisé: p>
Fielduerservalue fuv = (championnaire) Targetlistitem ["assigné"]; code> p>
Fielduerservalue [] FUV = TargetLisTem ["assigné"] comme champ de siteValue []; code> p>
Le fuv.lookupvalue code> peut contenir le nom d'affichage, pas le nom de connexion, donc ma suggestion est (en supposant que vous disposez du champ
Fielduerservalue Code> -
FUV CODE > en code (comme décrété par @ekhanna):
Désolé, cela ne fonctionne pas: Microsoft.SharePoint.client.ServerException s'est produit / L'utilisateur spécifié 5651 n'a pas pu être trouvé. Code>
Cela signifie qu'il n'y a pas d'utilisateur avec cet identifiant. Assurez-vous que vous utilisez l'ID de l'utilisateur et non l'index de l'utilisateur dans la collection SitesUners.