1

SharePoint 2007 ではSPSiteDataQuery、コンテンツ タイプに対して with フィルタを実行すると、期待どおりに機能しました。

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

SharePoint 2010 では、同じクエリで 1 つのリストのアイテムのみが返されます。考えられる回避策は、コンテンツ タイプ 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 に答える