基于多选字段中扩展列的 REST 查询 (Listdata.svc)
REST Query based on Expanded columns in multi choice fields (Listdata.svc)
我有一个 SP2010 客户端应用程序进行 REST 调用。我有一个很大的列表,我想使用 none 的值或许多名为 'displays' 的选择字段来进行过滤查询。我无权在此代码上添加服务器端代码。
当我 'expand' 查询时,我可以像这样访问选择的值
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'
我收到错误消息
"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
错误:
在位置 0 的类型 'Microsoft.SharePoint.Linq.DataServiceEntity' 中不存在 属性 'DisplaysValue'。
测试没有 'Value' 后缀的 'Displays' 错误是:
运算符 'eq' 在位置 9 与操作数类型 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' 和 'System.String' 不兼容。
我再次陷入 2010 年,在此先感谢。
您尝试的方法仅适用于非多select 的选择列。不幸的是,REST 接口不支持多 select 选择列。 SharePoint 2013 显然也是如此。
FWIW,当我尝试从 SharePoint 中的 Angular JS 应用程序执行相同的操作时,我 运行 遇到了同样的问题。我最终创建了自己的多值选择字段实现,然后将结果数据以 JSON 格式存储在 SharePoint 的多行文本列中。这让我可以毫无问题地使用 REST 查询该字段。
我有一个 SP2010 客户端应用程序进行 REST 调用。我有一个很大的列表,我想使用 none 的值或许多名为 'displays' 的选择字段来进行过滤查询。我无权在此代码上添加服务器端代码。
当我 'expand' 查询时,我可以像这样访问选择的值
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'
我收到错误消息
"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
错误:
在位置 0 的类型 'Microsoft.SharePoint.Linq.DataServiceEntity' 中不存在 属性 'DisplaysValue'。
测试没有 'Value' 后缀的 'Displays' 错误是:
运算符 'eq' 在位置 9 与操作数类型 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' 和 'System.String' 不兼容。
我再次陷入 2010 年,在此先感谢。
您尝试的方法仅适用于非多select 的选择列。不幸的是,REST 接口不支持多 select 选择列。 SharePoint 2013 显然也是如此。
FWIW,当我尝试从 SharePoint 中的 Angular JS 应用程序执行相同的操作时,我 运行 遇到了同样的问题。我最终创建了自己的多值选择字段实现,然后将结果数据以 JSON 格式存储在 SharePoint 的多行文本列中。这让我可以毫无问题地使用 REST 查询该字段。