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 查询来过滤我的列表。
我查阅了各种文章,但没有找到适合我的确切情况的答案。我有一个 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 查询来过滤我的列表。