SharePoint 2013 REST如何选择查找字段并根据查找字段进行过滤?

时间:2014-10-21 05:14:42

标签: rest sharepoint odata sharepoint-2013

我无法在SharePoint 2013列表中选择查找字段。 我也无法根据查找字段进行过滤。

例如我有List with Name Test,这个列表包含字段:Title,Company,Province 公司和省是根据省份查找我想要过滤的字段,这是一个查找字段 使用REST查询会出错:

我的疑问:

https://TestServer/sites/AIB/OBC/_api/web/lists/getByTitle('Test')/items?$select=Province/Title&$expand=Province&$filter=Province/Title eq 'ABC'

当我将URL放入我的浏览器进行测试时,它会出错,这会产生错误:

<m:message xml:lang="en-US">The field or property 'Province' does not exist.</m:message>

如何根据SharePoint 2013 REST中的查找字段进行过滤?

3 个答案:

答案 0 :(得分:3)

使用$ expand就像打击代码一样:

/_api/web/lists/GetByTitle('Test')/items?$select=Province/Title&$expand=Province&$filter=Province/Title eq 'XYZ'

答案 1 :(得分:3)

如何使用SharePoint REST按查找字段值进行过滤

假设Contacts列表包含名为Province

的查找字段

选项1

将查阅列添加到列表中时,其ID可通过REST自动访问。例如,当名为Province的字段添加到List中时,可以设置Province Id或通过列表项的ProvinceId属性获取。

以下查询演示了如何按查找字段ID (在我们的示例中为Province Id)过滤列表项:

/_api/web/lists/GetByTitle('<list title>')/items?$filter=LookupField eq <ProvinceId>

其中<ProvinceId>是省ID

选项2

为了按查找值进行过滤,查询应包含$expand查询选项以检索投影字段(例如Province Title)。以下示例演示了如何按查找字段值进行过滤(在我们​​的示例中为Province Title):

/_api/web/lists/GetByTitle('Contacts')/items?$select=Province/Title&$expand=Province&$filter=Province/Title eq <ProvinceTitle>

其中<ProvinceTitle>是省的Title

答案 2 :(得分:1)

Mehdi jalal,我发现为什么它会抛出这个错误。您需要使用单引号关闭省份标题,并且您拥有它。像这样

查询语法: /_api/web/lists/GetByTitle('Contacts')/items?$select=Province/Title,Province/ID&$expand=Province&$filter=Province/Title eq '<ProvinceTitle>'

现在这是示例查询: /_api/web/lists/GetByTitle('Contacts')/items?$select=Province/Title,Province/ID&$expand=Province&$filter=Province/Title eq 'Detroit Province'