我正在尝试从SharePoint列表中查询某些信息。现在,我正在尝试使用odata来获取它。我的问题是,由于某种原因,$ filter不能使用该列表中的所有密钥:S。这是一个例子:
这样可以正常:
但是这个不起作用(HTTP 400错误请求)
尽管如此,字段名称还可以,因为我能够使用具有相同字段名称的select和orderby。这是IE中2'标题'的XML输出。名为AUG:
... CCM / _api /列表/ GetByTitle('电路%20Deliveries')?/物品$滤波器=标题 EQ ' AUG'&安培; $选择=标题,Delivery_x0020_Date,Status_x0020__x002d__x0020_Calcu
<?xml version="1.0" encoding="utf-8" ?> -
<feed xml:base="/ccm/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss"
xmlns:gml="http://www.opengis.net/gml">
<id>5a2630a8-c00a-4baa-bd43-3912d9264df8</id>
<title />
<updated>2017-09-08T10:58:12Z</updated>
<entry m:etag="" 33 "">
<id>Web/Lists(guid'5ad8ca39-191a-4586-bdef-7bc4830eced9')/Items(332)</id>
<category term="SP.Data.Circuit_x0020_DeliveriesListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" href="Web/Lists(guid'5ad8ca39-191a-4586-bdef-7bc4830eced9')/Items(332)" />
<title />
<updated>2017-09-08T10:58:12Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>AUG</d:Title>
<d:Delivery_x0020_Date m:type="Edm.DateTime">2017-03-06T06:00:00Z</d:Delivery_x0020_Date>
<d:Status_x0020__x002d__x0020_Calcu>Circuit Ready for Production Use on 03/06/2017</d:Status_x0020__x002d__x0020_Calcu>
</m:properties>
</content>
</entry>
<entry m:etag="" 58 "">
<id>Web/Lists(guid'5ad8ca39-191a-4586-bdef-7bc4830eced9')/Items(333)</id>
<category term="SP.Data.Circuit_x0020_DeliveriesListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<link rel="edit" href="Web/Lists(guid'5ad8ca39-191a-4586-bdef-7bc4830eced9')/Items(333)" />
<title />
<updated>2017-09-08T10:58:12Z</updated>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:Title>AUG</d:Title>
<d:Delivery_x0020_Date m:null="true" />
<d:Status_x0020__x002d__x0020_Calcu>Site Survey completed on 09/09/2016</d:Status_x0020__x002d__x0020_Calcu>
</m:properties>
</content>
</entry>
</feed>
&#13;
如您所见,我能够成功查询并从列表中选择这两个字段并按标题过滤。不过,我想进一步过滤Delivery_x0020_Date为空(或空)。
我四处搜索,有些人说在日期过滤空格并不总是有效。但在我的情况下有点多,因为即使我尝试使用另一个键(Status_x0020__x002d__x0020_Calcu)进行过滤,它也会返回错误请求
是否要求您可以过滤哪种类型的按键? 谢谢
答案 0 :(得分:0)
SharePoint 2013中的REST API不支持对列表项查询进行过滤的空值。(请参阅此MSDN链接)
您必须找到其他一些解决方法。
但是,我们可以将CAML查询与REST API结合使用,以在Javascript对象模型中获取所需的数据。请参阅此链接 - REST API to filter on null。
但我不确定c#代码。