CAML 查询检查 NULL 参数

CAML Query checking for NULL Parameters

我查阅了各种文章,但没有找到适合我的确切情况的答案。我有一个 SharePoint 2010 列表,其中包含一些用于过滤目的的查询参数。除了在一种情况下,我的 CAML 查询在过滤方面效果很好,我希望在我的查询中有一个通用显示所有条件,用于首次点击列表视图时(即我的客户将主动能够 see/page/sort 数据,而无需先拥有搜索列表)。 如果我只是过滤列表字段,我会被设置,但由于我在我的 CAML 中引用查询参数,我在 SharePoint Designer 中收到 SOAP 错误。 SQL 等效项为:其中(@Parameter1 为空且@Parameter2 为空且@Parameter3 为空...)

我试过这个结构:

    <Or Group="true">
       <And>
         <And>
           <IsNull>
           <FieldRef Name ="Title"/>
           <Value Type="Text">{RollNum}</Value>
           </IsNull>
        <Gt>
          <FieldRef Name="ID"/>                     
          <Value Type="Counter">
         <IfEqual>
          <Expr1><![CDATA[{Param1}]]></Expr1>   
          <Expr2/>
          <Then>0</Then>                    
          <Else>2147483647</Else>
        </IfEqual>
        </Value>
      </Gt>
    </And>
   <IsNull>
      <FieldRef Name ="RefNumber"/>
      <Value Type="Text">{RefNum}</Value>
      </IsNull>
    </And>
</Or>...the rest of the query, which works fine.

我感觉我的结构不对。

提前致谢, 布莱恩·H.

您可以使用此语法来确定字段是否为空:

<Where><IsNull><FieldRef Name='YourFieldName' /></IsNull></Where>

您在 IsNull 中有一个额外的 Value 元素,您应该将其删除。

我决定使用 HTML 表单 Web 部件来实现我的目标(而不是内容编辑器)。 HTML 表单 Web 部件将所有过滤器值输入到任何框中,并且可以连接起来使用参数和自定义 caml 查询来过滤我的列表。