Apareciendo personajes no deseados antes del autor en los resultados de búsqueda
-
09-12-2019 - |
Pregunta
Al ejecutar mi SPSITEDAQUERY (código a continuación), parezco conseguir 1; # antes del nombre del autor real.¿Alguien puede apuntarme en la dirección correcta hacia una explicación a esto, por favor?
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = @"<Lists ServerTemplate='850' Hidden='TRUE' />";
query.ViewFields = @"<FieldRef Name=""Title"" /><FieldRef Name=""Author"" />";
query.Webs = @"<Webs Scope='SiteCollection'/>";
query.Query = @"<Where>
<BeginsWith>
<FieldRef Name='ContentTypeId'/>
<Value Type='Text'>[LONG GUID]</Value>
</BeginsWith>
</Where>";
query.RowLimit = 10;
DataTable dt = web.GetSiteData(query);
Entonces, en cada DT, tendré: "1; #daniel mcnulty" en la columna del autor, por ejemplo.
Solución
Cuando consulta el contenido, lo va a recuperar en su formato real.Para algunos campos como campos de búsqueda y campos de usuario, el tipo de datos es en realidad multifunción y usará un formato como este.Si está buscando el nombre de la pantalla, simplemente formatee el valor de la forma en que lo desea.
Otros consejos
La columna de autor utiliza una SPFIVERLOOKUP al usuarioLista de información.
SharePoint 2007 y 2010 a menudo se utilizan; # como un divisor interno en sus campos de datos.SPSITEDATAQUERY DEVOLVER LOS VALORES DE DATOS INTERNOS, GENERCANTE SI DEBERÁ A UNA; # Habrá una clase incorporada que maneja la conversión para usted.
Puede usar el SPFIELDLOOKUPVALUE Clase para manejarla cadena relevante dividida.
string authorField = item["Author"].ToString();
SPFieldLookupValue authorValue = new SPFieldLookupValue(authorField);
// The account Login Name of the author
authorValue.LookupValue
// The User Information List ID of the user
authorValue.LookupId
Dependiendo de lo que está tratando de hacer la identificación puede ser más útil que el nombre de inicio de sesión.
Para representar el DataTable en un SPDATRAGRID Puede usar las plantillas de elementos para transformar los valores a un formato más útil, por ejemplo.Un enlace al perfil de los usuarios.