REST查询基于多选字段中的扩展列(Listdata.svc)

时间:2016-10-04 13:47:17

标签: javascript rest sharepoint-2010 client-side

我有一个SP2010客户端应用程序进行REST调用。我有一个大型列表,我想使用名为'显示'的无或多选项字段的值进行过滤查询。我没有权限在这个上添加服务器端代码。

当我'扩展'查询我可以像这样访问选择的值

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'

我收到错误消息

  

"没有财产'价值'存在于类型中   ' System.Collections.Generic.IEnumerable`1 [[Microsoft.SharePoint.Linq.DataServiceEntity,   Microsoft.SharePoint.Linq,Version = 14.0.0.0,Culture = neutral,   公钥= 71e9bce111e9429c]]'在第9位。"

Per another thread我试过了

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

错误:

没有属性' DisplaysValue'存在于类型' Microsoft.SharePoint.Linq.DataServiceEntity'位置0。

测试'显示'没有'价值'后缀错误是:

运营商' eq'与操作数类型不兼容' System.Collections.Generic.IEnumerable`1 [[Microsoft.SharePoint.Linq.DataServiceEntity,Microsoft.SharePoint.Linq,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c]]&# 39;和' System.String'在第9位。

我再次感谢你在2010年再次感谢。

1 个答案:

答案 0 :(得分:1)

您尝试的方法仅适用于非多选的选择列。遗憾的是,REST接口不支持多选选择列。同样适用于SharePoint 2013。

FWIW,我在尝试从SharePoint中的Angular JS应用程序执行相同操作时遇到了同样的问题。我最终创建了自己的多值选择字段实现,然后将结果数据以JSON格式存储在SharePoint中的多行文本列中。然后,这允许我使用REST查询该字段,没有任何问题。