CAML查询 - 包含空字符串

时间:2014-05-20 14:26:56

标签: sharepoint sharepoint-2007 caml

我想为包含查询的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>

但没有任何作用,

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,如果您将搜索查询传递给生成CAML查询的任何函数,则需要使用搜索词来查找包含该搜索词的项。如果没有搜索字词,则您希望返回所有项目。虽然我不确定您使用什么来生成CAML,但最简单的方法是在未包含搜索词的情况下不在查询中包含查询。如果有搜索词,那么这应该有效

<Query>
  <Where>
    <Contains>
      <FieldRef Name='ImageFilter'>
      <Value Type='Text'>{searchterm}</Value>
    </Contains>
  </Where>
</Query>

{searchterm}是您正在寻找的术语。