SharePoint UserData y; # Sintaxis de datos devueltos
-
20-09-2019 - |
Pregunta
Puede un experto en SharePoint explicarme la;? # En los datos devueltos por los GetListItems () llamar al servicio web Listas
Creo que entiendo lo que están haciendo aquí. El; # es casi como una sintaxis para hacer un comentario ... o mejor aún, incluyendo los datos reales (cuerda) y no sólo la identificación. De esta manera usted puede utilizar cualquiera, pero están muy bien emparejados juntos en la misma columna.
¿Estoy fuera de lugar? No puedo averiguar la cocina ligeramente diferente uso. Por ejemplo
I have a list with: ows_Author 658;#Tyndall, Bruno *in this case the 658 seems to be an ID for me in a users table somewhere* ows_CreatedDate (note: a custom field. not ows_Created) 571;#2009-08-31 23:41:58 *in this case the 571 seems to be an ID of the row I'm already in. Why the repetition?*
Puede alguien por ahí arrojar alguna luz sobre este aspecto de SharePoint?
Solución
El ;#
cadena se utiliza como delimitador de campos de búsqueda de SharePoint, incluyendo campos de usuario. Cuando se trabaja con el modelo de objetos, puede utilizar SPFieldLookupValue
y SPFieldUserValue
para convertir la cadena delimitada en un objeto inflexible de tipos. Cuando se trabaja con los servicios web, sin embargo, creo que tendrá que analizar la cadena de sí mismo.
Tiene razón en que la primera parte es un número entero ID: ID en la lista de usuarios sitio, o ID de la partida correspondiente en la lista de búsqueda. La segunda parte es el nombre de usuario o el valor de la columna de búsqueda.
Nicolas señala correctamente que este delimitador se utiliza también para otros valores de campo de compuestos, incluyendo ...
- SPFieldLookupValueCollection
- SPFieldMultiColumnValue
- SPFieldMultiChoiceValue
- SPFieldUserValueCollection
Otros consejos
El SPFieldUser hereda de la SPFieldLookup que utiliza el; # notación. Se puede analizar fácilmente el valor mediante la creación de una nueva instancia de la clase SPFieldLookupValue:
string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value