我想從特定SharePoint站點中名爲「Pages」的列表中檢索特定項目。我希望查詢只返回與我正在查詢的FileLeafRef相關的特定項目。我已經構建了一個CAML查詢,我已經用SP CAML查詢幫助工具進行了測試,所以我認爲CAML查詢很好;我只是不知道如何使用客戶端上下文來查詢該項目。這裏是我現有的代碼:當通過FileLeafRef查詢時,sharepoint caml查詢不起作用
Dim FileLeafRef As String = "SomeArbitrarilyNamedThing.aspx"
Dim clientContext As New Microsoft.SharePoint.Client.ClientContext("http://myfqdn/newsandmedia/companynews")
Dim theList As Microsoft.SharePoint.Client.List = clientContext.Web.Lists.GetByTitle("Pages")
Dim camlQuery As New Microsoft.SharePoint.Client.CamlQuery()
camlQuery.ViewXml = String.Format("<Query><Where><Eq><FieldRef Name=""FileLeafRef"" /><Value Type=""Text"">{0}</Value></Eq></Where></Query>", FileLeafRef)
Console.WriteLine(camlQuery.ViewXml)
Dim listItems As Microsoft.SharePoint.Client.ListItemCollection = theList.GetItems(camlQuery)
clientContext.Load(theList)
clientContext.Load(listItems)
clientContext.ExecuteQuery()
調用的executeQuery後,當我看看的ListItems集合,它具有比我查詢了一個項目的更多。 (具體來說它有15個,但應該只有一個具有所請求的FileLeafRef的項目)。任何人都可以通過確定這段代碼有什麼問題來幫助我嗎?
感謝
編輯:我既然發現,如果我查看標籤包裹camlQuery XML,它返回我想要的列表項。我不知道爲什麼。任何人都可以解釋這些標籤在這種情況下做了什麼,以及爲什麼查詢最初返回15個結果而不是1個?