SPSiteDataQuery:在 SharePoint 2010 中筛选内容类型

发布于 2024-09-25 20:41:12 字数 677 浏览 1 评论 0原文

在 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

In SharePoint 2007 executing a SPSiteDataQuery with filter for content types worked as expected.

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

In SharePoint 2010 the same query only returns items from one list.
A possible workaround would be to filter on the content type id. A "BeginsWith" operator has to be used, since the "list content type" inherits from the "site content type":

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

But this would match all items with this content type or with any inherited content type. Which is not what I want.

Does anyone know how to create a SPSiteDataQuery with content type filter?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城凉梦凉人心 2024-10-02 20:41:12

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

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

Try this (see the computed value type):

<Where>
  <Eq>
    <FieldRef Name='ContentType'/>
    <Value Type='Computed'>SomeContentType</Value>
  </Eq>
</Where>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文