SPSiteDataQuery:过滤SharePoint 2010中的内容类型

时间:2010-09-29 12:40:48

标签: sharepoint sharepoint-2010 spsitedataquery

在SharePoint 2007中,正在按预期方式执行带有内容类型过滤器的SPSiteDataQuery

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Text'>SomeContentType</Value>
  </Eq>
</Where>

在SharePoint 2010中,同一查询仅返回一个列表中的项目。 可能的解决方法是过滤内容类型ID。必须使用“BeginsWith”运算符,因为“列表内容类型”继承自“站点内容类型”:

<Where>
  <BeginsWith>
    <FieldRef Name='ContentTypeID'/>
    <Value Type='Text'>SomeContentTypeId</Value>
  </BeginsWith>
</Where>

但这会匹配具有此内容类型或任何继承内容类型的所有项目。这不是我想要的。

有谁知道如何使用内容类型过滤器创建SPSiteDataQuery

1 个答案:

答案 0 :(得分:1)

试试这个(参见计算值类型):

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Computed'>SomeContentType</Value>
  </Eq>
</Where>