Je tente d'obtenir un objet SPListItem à partir d'un ID unique (GUID). De regarder plusieurs sites (inc http://sharepoint400.blogspot.com/2011/04/using-spsitedataquery-to-find-list.html et http://www.chakkaradeep.com/post/Retrieving-an-Item-from-the-RootWeb-and-Subwebs-using-its-UniqueId.aspx) je suis venu avec le code ci-dessous.SharePoint: Get SPListItem par ID unique
const string QueryFormat =
@"<Where>
<Eq>
<FieldRef Name='UniqueId' />
<Value Type='Lookup'>{0}</Value>
</Eq>
</Where>";
SPSiteDataQuery query = new SPSiteDataQuery();
query.Webs = "<Webs Scope='SiteCollection' />";
query.Lists = "<Lists BaseType='0'/>";
query.Query = string.Format(QueryFormat, itemUniqueId);
query.RowLimit = 1;
//query.ViewFields = "<FieldRef Name='WebID' /><FieldRef Name='ListID' /><FieldRef Name='ID' />";
var results = SPContext.Current.Web.GetSiteData(query);
Cependant, peu importe ce que ... Je semble toujours obtenir zéro lignes retournées. Je ne comprends pas pourquoi, parce que je sais que les Guids que j'utilise sont corrects.
Des idées?
Avez-vous envisagé d'ajouter un type récursif à votre requête? Pourriez-vous également nous montrer comment et où vous passez dans le GUID et sous quelle forme? Etes-vous uniquement concerné par des éléments de liste et non par des listes, des sites Web ou des sites? Connaissez-vous la liste cible ou le web de l'article? Etes-vous limité à utiliser CAML? Connaissez-vous la méthode '$ listItem = $ spList.GetItemByUniqueId ($ targetGuid)'? Comme vous pouvez le voir, il y a beaucoup de questions qui exigent des réponses avant que quiconque puisse fournir une réponse significative. – Panoone