2012-07-05 42 views
1

我想实现的是:以关键字数组作为输入并查询Sharepoint列表以返回包含列表中关键字的所有行。带有包含和或子句的CAML查询问题

我已经构建了一个简单的CAML查询来查询我的列表与一个关键字(pdf)。

<Query><Where><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Where></Query> 

这工作正常。

但是,当我尝试使用或在CAML查询子句(见下文),我收到以下错误

“一个或多个字段类型安装不正确。进入列表设置页面中删除这些领域。“

<Query><Where><Or><Contains><FieldRef Name='Keyword'/><Value Type='Text'>pdf</Value></Contains></Or></Where></Query> 

我搜索的语法和一切看起来不错。请让我知道缺少的东西。

在此先感谢。

+0

如果您使用SharePoint 2007,那么2010年可能会有一个)我建议您尝试使用CAML生成器将使您的生活更轻松! – Truezplaya

+0

Truezplaya,不幸的是,我的公司有下载软件的限制。我只使用Javascript中的Sharepoint列表服务,将来不需要它。有没有一个在线工具来评估语法? –

+0

不幸的是我不认为有。这个工具可以在编写CAML时提高效率,所以我想你会有一个好的案例来获得一份副本。如果你曾经写过CAML,我相信你会再次遇到它! – Truezplaya

回答

0

在CAML查询中,如果你想使用或者你必须和应该有两个条件。

+0

关键字的数量可能是1-n。我正在动态地构建Where子句。所以,据我了解,如果有一个关键字,并且如果有多个关键字,则需要排除OR子句,否则需要排除OR子句? –

0

字段引用名称必须是内部名称。您可以通过访问列表/库设置中的colmn页面来找到该名称,并且该名称是URL的结尾。名称中的空格和下划线必须以不同的方式处理。