Sharepoint 2010 CAML查询检查空参数

Sharepoint 2010 CAML查询检查空参数,sharepoint-2010,caml,Sharepoint 2010,Caml,我读了很多文章,但还没有找到一个确切的答案。我有一个SharePoint 2010列表,其中包含一些用于筛选的查询参数。我的CAML查询可以很好地进行过滤,除了在一种情况下,我希望在查询中显示listview第一次被点击时的所有条件(即,我的客户端将能够主动查看/分页/排序数据,而不必首先搜索列表)。 如果我只是过滤列表字段,我会被设置,但由于我在CAML中引用查询参数,我在SharePoint Designer中收到SOAP错误。 SQL等价物是:(@Parameter1为null,@Para

我读了很多文章,但还没有找到一个确切的答案。我有一个SharePoint 2010列表,其中包含一些用于筛选的查询参数。我的CAML查询可以很好地进行过滤,除了在一种情况下,我希望在查询中显示listview第一次被点击时的所有条件(即,我的客户端将能够主动查看/分页/排序数据,而不必首先搜索列表)。 如果我只是过滤列表字段,我会被设置,但由于我在CAML中引用查询参数,我在SharePoint Designer中收到SOAP错误。 SQL等价物是:(@Parameter1为null,@Parameter2为null,@Parameter3为null…)

我尝试过这种结构:

    <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.

{RollNum}
0
2147483647
{RefNum}
…查询的其余部分,工作正常。
我感觉我的结构不正确

提前感谢,,
Brian H.

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

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


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

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

嗨,格伦,唯一的问题是我没有检查列表字段是否为空,我正在尝试检查输入查询参数的文本框是否为空。基本上,如果我提供的搜索查询中的所有框都为空,我希望列表显示全部,否则用户可以在我的任何参数框中输入一个值来临时筛选列表