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

REST Query based on Expanded columns in multi choice fields (Listdata.svc)

本文关键字:查询 REST Listdata svc 选择 于多 字段      更新时间:2023-09-26

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

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

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

因为将1000行拖到客户端显示20行是残酷和不寻常的网络惩罚,我需要在.Displays.results[0].Value上过滤d.results

我已经试过了:

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

我得到了错误信息

的奖励

" type中不存在属性" Value "System.Collections.Generic.IEnumerable"1 [[Microsoft.SharePoint.Linq.DataServiceEntity,Microsoft.SharePoint。Linq, Version=14.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c]]' at position 9。"

每个线程我都尝试过

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

类型'Microsoft.SharePoint.Linq '中不存在'DisplaysValue'属性。

测试没有'Value'后缀的'Displays',错误是:

操作符'eq'与操作数类型'System.Collections.Generic.IEnumerable '不兼容[[Microsoft.SharePoint.Linq. linq .]DataServiceEntity Microsoft.SharePoint。Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]'和'System. '


我被困在2010年再次提前感谢。

您正在尝试的方法仅适用于非多选择的选择列。不幸的是,REST接口不支持多选择选项列。SharePoint 2013显然也是如此。

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