我想为包含查询的SharePoint 2007编写CAML查询。
唯一的问题是我想使用像:
这样的逻辑如果我的搜索查询有值,请搜索包含查询的搜索查询 如果我的搜索查询为空,请从列表中选择所有项目
我尝试了几个查询(这是我的空案例):
<Query>
<Where>
<Or>
<IsNull>
<FieldRef Name="ImageFilter"/>
</IsNull>
<Contains>
<FieldRef Name='ImageFilter'></FieldRef>
<Value Type='Text'></Value>
</Contains>
</Or>
</Where>
</Query>
和
<Query>
<Where>
<Contains>
<FieldRef Name='ImageFilter'></FieldRef>
<Value Type='Text'></Value>
</Contains>
</Where>
</Query>
但没有任何作用,
你能帮帮我吗?
答案 0 :(得分:0)
如果我理解正确,如果您将搜索查询传递给生成CAML查询的任何函数,则需要使用搜索词来查找包含该搜索词的项。如果没有搜索字词,则您希望返回所有项目。虽然我不确定您使用什么来生成CAML,但最简单的方法是在未包含搜索词的情况下不在查询中包含查询。如果有搜索词,那么这应该有效
<Query>
<Where>
<Contains>
<FieldRef Name='ImageFilter'>
<Value Type='Text'>{searchterm}</Value>
</Contains>
</Where>
</Query>
{searchterm}是您正在寻找的术语。