Problema de clasificación de spquery
-
12-11-2019 - |
Pregunta
Tengo este splistitem.folder en SharePoint que contiene una propiedad llamada "ID de activo".
Tengo estos datos en mi lista
Asset ID | Name | Asset Type
1 | GamesFolder | Games
2 | AppsFolder | softwares
3 | MusicFolder | music
en mi código I hice esto
SPList objList = web.Lists["MyList"];
SPQuery query = new SPQuery();
query.Query = "<OrderBy><FieldRef Name='Asset ID' Ascending='FALSE'/></OrderBy>";
query.ViewAttributes = "Scope=\"Recursive\"";
query.RowLimit = 1;
SPListItemCollection items = objList.GetItems(query);
return objList.Items[0].Folder.Properties["Asset ID"].ToString();
Yo uso .folder porque cada entrada en la lista es un documento. El valor devuelto es siempre "1".No sé, ¿qué pasa? ¿Por qué mi clasificación? no funciona en absoluto
Por favor, ayúdame a resolver este problema.Gracias.
Solución
Hola Carls Creo que hay problema para el nombre del campo.U incluye espacio en el nombre del campo
Si desea evitar tener que buscar qué es el nombre interno de un campo en particular, cuando nombra su columna, no incluya ningún espacio ni caracteres especiales.Una vez que se haya creado el campo (columna), vuelva y cambie el nombre del campo para incluir los espacios o los caracteres especiales según lo desee.SharePoint todavía conservará el nombre del campo original sin espacios y puede usarlo directamente en su consulta sin problemas.
Otros consejos
o use su nombre interno:
query.query="
Un poco tarde, pero si tiene problemas, es posible que pueda usar todo o una parte de la siguiente gana: https://gist.github.com/trgraglia/4672176
y como la respuesta aceptada afirma, el nombre del campo es el problema.Necesitas usar el nombre estático del campo.El nombre estático siempre permanecerá igual.Incluso si la columna se cambia el nombre.Por lo tanto, debe obtener la columna de la colección de columnas por el nombre de la pantalla y luego obtenga el nombre estático de las propiedades.