我有一个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年再次感谢。
答案 0 :(得分:1)
您尝试的方法仅适用于非多选的选择列。遗憾的是,REST接口不支持多选选择列。同样适用于SharePoint 2013。
FWIW,我在尝试从SharePoint中的Angular JS应用程序执行相同操作时遇到了同样的问题。我最终创建了自己的多值选择字段实现,然后将结果数据以JSON格式存储在SharePoint中的多行文本列中。然后,这允许我使用REST查询该字段,没有任何问题。