SharePoint: Como recoger el valor mostrado de un campo de tipo Usuario!

El otro día en una formación sobre desarrollo en SharePoint me preguntaban si había alguna forma de poder extraer de forma programática el valor mostrado en un campo de tipo Usuario como el campo “Asignado a” en una lista de Tareas…en el caso en concreto, en una columna de tipo texto un manejador de eventos simplemente concatenaba el nombre de la tarea con el campo “Asignado a”…el problema de concatenar “a pelo” es que al acceder de forma programática al campo “Asignado a”, vamos a tener un valor de tipo ID;#Nombre para mostrar que no es lo que se quería en este caso…la razón de este comportamiento es que estamos trabajando con un campo de tipo Usuario y lo que nosotros queremos obtener es el valor para mostrar.

image

Para solucionarlo, simplemente hacer uso de la clase SPUserFieldValue como se indica en el siguiente listado:

   1:  

   2: //Llamada a la función

   3: Console.WriteLine(ExtraerLoginUsuario("8;#Juan Carlos Gonzalez"));

   4:  

   5: //Código de la función que extrae el valor para mostrar

   6: static string ExtraerLoginUsuario(string sAssignedToField)

   7: {

   8:     using (SPSite spsSitio = new SPSite("http://c4968397007:100/sites/rinder/"))

   9:     {

  10:         using (SPWeb spwWeb=spsSitio.OpenWeb())

  11:         {            

  12:             SPFieldUserValue spfUserValue = 

  13:                 new SPFieldUserValue(spwWeb, sAssignedToField);

  14:             return spfUserValue.LookupValue;

  15:         }

  16:     }

  17: }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s