1

在 SharePoint 2007 中,对内容类型执行SPSiteDataQuerywith 筛选器按预期工作。

<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内容类型过滤器?

4

1 回答 1

1

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

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Computed'>SomeContentType</Value>
  </Eq>
</Where>
于 2010-11-01T21:22:17.787 回答