Wednesday, July 18, 2007

Champs type Lookup et type People (update) et type Link

Je reviens rapidemment sur les deux champs à saisie simple et multiple, les champs Lookup et People Comme je le précise dans mon article précédent, ils renvoient une chaîne de caractères bizarres composés d'un couple ID/Libellé ( "#1;#data1#;#2#data2#;") Pour pouvoir accéder facilement aux données, il faut réussir à utiliser au final un type SPFieldLookupValue qui a deux propriétés utiles: - LookupId : pour récupérer l'Id de l'item de la liste liée dans le lookup - LookupValue : pour récupérer le libellé (ce qu'on voit dans la liste) Dans le cas d'une sélection multiple, on doit utiliser le constructeur de SPFieldLookupValueCollection avec en paramètre la chaîne de caractère à traiter : SPFieldLookupValueCollection spcol = new SPFieldLookupValueCollection(string_from_field) Ce qui retournera une collection de SPFieldLookupValue Par contre, si c'est une sélection unique, deux cas se présentent : Cas 1 : c'est un champ de type Lookup, alors on peut utiliser le contructeur de SPFieldLookupValue : SPFieldLookupValue spfield = new SPFieldLookupValue(string_from_field) Cas 2 : c'est un champ de type People, alors ce champs renvoit un Integer qui est l'Id du SPUser : SPUser user = web.AllUsers.GetByID(userId); Le champs de type Link Le champ de type Link a besoin de deux informations : - l'URL - La description Pour adresser un tel champs, il faut utiliser l'objet SPFieldUrlValue et renseigner les deux propriétés Description et Url : SPFieldUrlValue linkURL = new SPFieldUrlValue(); linkURL.Description = description; linkURL.Url = link; La description représente le libellé qui apparaîtra dans la colonne. Ce libellé sera un lien vers Url Voilà trois champs que l'on rencontre très souvent et qui sont un petit peu pénible à utiliser.

No comments: