2009-10-20 14 views
2

J'ai fait une requête sur une liste. Je veux obtenir le dernier élément modifié qui répond à une certaine condition, et ma requête ressemble à ceci:SharePoint CAML OrderBy MODIFIÉ ne fonctionne pas

<Query><OrderBy><FieldRef Name='Modified' Ascending='FALSE' /></OrderBy><Where><Eq><FieldRef Name='kortnummer'/><Value Type='String'>kv11</Value></Eq></Where></Query> 

Je reçois les listitems j'ai besoin, mais pas dans le bon ordre. Changer Ascendant à true ne fait rien, donc évidemment il y a quelque chose avec la clause OrderBy qui n'est pas correcte.

Selon MSDN, il devrait être possible de commander par Modifié.

Toute idée pourquoi mon OrderBy ne fonctionne pas?

+0

pouvez-vous s'il vous plaît envoyer votre code pour exécuter cette requête? peut-être que vous envoyez simplement cette étiquette supplémentaire

+0

Ouais, parce que si vous obtenez la requête erronée, elle renverra tous les résultats. –

+0

Merci, ça m'a aidé à le résoudre! Je l'avais sans au début, mais il ne retourne rien du tout. Il s'est avéré que j'aurais juste dû changer le type de données de la fieldref où 'Text' :) :) – brysseldorf

Répondre

3

Je toujours mettre le OrderBy après le Où.

Sinon, vous pouvez vous assurer que vous utilisez le nom interne. J'utilise habituellement SharePoint Manager 2007 pour obtenir les noms de champs internes. Je peux voir que sur une liste dans mon SharePoint, le nom interne modifié de colonne est "Last_x0020_Modified".

1

Si vous faites cela dans une chaîne C# pour obtenir un SPListItemCollection, vous n'avez pas besoin balises « < requêtes > </Requête > ».

+0

Désolé, je n'ai pas vu que vous l'avez corrigé en faisant juste cela! Eh bien, et le type de valeur FieldRef .... – Tom