【问题标题】:CAML query - contains empty stringCAML 查询 - 包含空字符串
【发布时间】:2014-05-20 14:26:55
【问题描述】:

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

但没有任何效果,

你能帮我解决这个问题吗?

【问题讨论】:

    标签: sharepoint sharepoint-2007 caml


    【解决方案1】:

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

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

    其中 {searchterm} 是您要查找的字词。

    【讨论】:

    • 这是我的想法 :( 我需要以不同的方式处理。谢谢
    • 虽然这可以为单个输入搜索词处理,但如果有多个输入文本框并且我们正在对这些文本框进行 AND 操作,那么不确定如何忽略空白的..可以有任何组合空白-非空白..:(
    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多