Problème de tri SpQuery
-
12-11-2019 - |
Question
J'ai ce Splistitem.folder dans SharePoint qui contient une propriété nommée "Asset ID".
J'ai ces données dans ma liste
Asset ID | Name | Asset Type
1 | GamesFolder | Games
2 | AppsFolder | softwares
3 | MusicFolder | music
Dans mon code, j'ai fait ça
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();
J'utilise. Folder car chaque entrée de la liste est un ensemble de documents. La valeur renvoyée est toujours "1". Je ne sais pas ce qui ne va pas pourquoi mon tri ne fonctionne pas du tout.
S'il te plaît, aide-moi à résoudre ce problème. Merci.
La solution
Salut Carls Je pense qu'il y a un problème pour le nom du champ. Vous incluez de l'espace dans le nom du champ
Si vous voulez éviter d'avoir à rechercher quel est le nom interne d'un champ particulier, lorsque vous nommez votre colonne, n'incluez aucun espace ou caractères spéciaux. Une fois le champ (colonne) créé, revenez en arrière et renommez le champ pour inclure les espaces ou les caractères spéciaux comme vous le souhaitez. SharePoint conservera toujours le nom de champ d'origine sans espaces et vous pouvez l'utiliser directement dans votre requête sans problème.
Autres conseils
ou utilisez son nom interne:
query.query = "u003COrderBy>u003CFieldRef Name='Asset_x0020_ID' Ascending='FALSE'/>u003C/OrderBy> "
Un peu tard mais si vous rencontrez des problèmes, vous pourrez peut-être utiliser tout ou partie de l'essentiel suivant:https://gist.github.com/trgraglia/4672176
Et comme l'indique la réponse acceptée, le nom du champ est le problème. Vous devez utiliser le nom statique du champ. Le nom statique restera toujours le même. Même si la colonne est renommée. Vous devez donc obtenir la colonne de la collection de colonnes par nom d'affichage, puis obtenir le nom statique des propriétés.