SPSiteDataQuery:在 SharePoint 2010 中筛选内容类型
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个(请参阅计算值类型):
Try this (see the computed value type):