2016-10-04 73 views
0

我有一個SP2010客戶端應用程序進行REST調用。我有一個很大的列表,我希望使用名爲'displays'的none或many選項字段的值進行過濾查詢。我無法添加到此服務器端代碼。基於多選字段中的擴展列的REST查詢(Listdata.svc)

當我「擴大」查詢我可以訪問選擇的價值,像這樣

myDataVar.d.results[0].Displays.results[0].Value 

因爲拖1000行到客戶端,以顯示20是殘酷和不尋常的網絡懲罰我需要篩選d.results.Displays.results[0].Value

我已經試過這樣:

[site]/_vti_bin/Listdata.svc/MasterDataList?$filter=Displays/Value eq 'Wide' 

我與錯誤消息

"No property 'Value' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' at position 9."

another thread我已經試過獎勵

/_vti_bin/Listdata.svc/MasterDataList?$filter=DisplaysValue eq 'Wide'&$expand=Displays 

錯誤:

無財產「DisplaysValue」型「Microsoft.SharePoint.Linq.DataServiceEntity」存在於位置0

測試的「顯示」沒有「價值」後綴的錯誤是:

操作情商'與操作數類型不兼容System.Collections.Generic.IEnumerable`1 [[Microsoft.SharePoint.Linq.DataServiceEntity,Microsoft.SharePoint.Linq,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c]]'和'System .String'在位置9.


再次感謝我在2010年回來。

+0

我不知道這是否在2010年是可能的。然而,我在這裏完全沒有幫助我,很確定這可以在2013年完成。 –

+0

您在多大程度上使用REST?如果這是一個選項,您可以在SharePoint 2010的JavaScript對象模型中使用常規的'CAML查詢。 – Thriggle

回答

1

您試圖使用的方法只能用於非多選的選擇列。不幸的是,REST接口不支持多選列。顯然,SharePoint 2013也是如此。

FWIW,當嘗試從SharePoint中的Angular JS應用程序做同樣的事情時遇到了同樣的問題。我最終創建了自己的多值選擇字段實現,然後將結果數據以JSON格式存儲在SharePoint中的多行文本列內。這使我可以使用REST查詢該字段,而不會出現任何問題。

+0

這一直是整體的共識。 SAD的事實是使用SOAP接口可以獲得它們。儘管你必須解析;#nn's ... –