1

カスタムリスト定義(schema.xml)があり、サイト列(A機能を介して)と多数のコンテンツタイプを機能を介して設定しましたが、これはすべて正常に機能します。私はリスト定義(schema.xml)を持っており、コンテンツタイプを表示したい順序で一番上に配置しました(一番上のコンテンツタイプがリストのデフォルトになると仮定します-これが私が望むものです)

注:私は設定しました

EnableContentTypes="true" 

これが私のschema.xmlからの抜粋です

<ContentTypes>
  <!-- Folder based content type -->
  <ContentTypeRef ID="0x0120006ad66a4924644ac98d371a0e069c5d99" />
  <!-- Item Based Content Type -->
  <ContentTypeRef ID="0x0100a18ddd58b9384567bc776a3c5889ea77" />
  <!--   ..... more content types ...  -->
</ContentTypes>

私が抱えている問題は、リストがプロビジョニングされると、フォルダベースのコンテンツタイプが常にリストの2番目になり、その結果、リストのデフォルトになることはないため、デフォルトにする唯一の方法は、他のすべてのコンテンツを削除することです。複数のコンテンツタイプを持つというオブジェクトを打ち負かすタイプ宣言。この順序は、リストのプロビジョニング方法によるものですか、それともSDKの奥深くに隠れているものが不足しているためですか?

4

3 に答える 3

1

FeatureReceiverを使用すると、リストRootFolder.UniqueContentTypeOrderをContentTypesの順序付きリストに設定できます。これにより、ボタンの順序が決定されます。

リストで定義されていても、使用可能にしたくないContentTypeを除外することもできます。これを、追加されたフォルダーのボタンの順序(UniqueContentTypeOrder)を設定するイベントレシーバーと組み合わせて、最上位のフォルダーのみでネストされたフォルダーなし(または深さxレベルのみ)などの特定の構造にユーザーを誘導するのが一般的です。 。

于 2009-07-25T15:46:00.163 に答える
1

プロパティバッグを確認してください。作業中のリストには、おそらく「vti_contenttypeorder」というプロパティがあり、UIを介して並べ替えたときに表示される順序でコンテンツタイプIDが使用されます。

于 2013-04-09T20:45:51.947 に答える
0

...@Renanの回答に基づいて構築-デフォルトのコンテンツタイプを宣言的に設定します。モジュールを作成し、プロパティバッグという名前を付けて、リストインスタンスを含むWebスコープ機能に追加します。Elements.xmlには、次のものが含まれている必要があります。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <PropertyBag Url="<!--URL of your list instance here-->" ParentType="Folder" RootWebOnly="FALSE" AlwaysCreateFolder="TRUE" xmlns="http://schemas.microsoft.com/sharepoint/">
    <Property Name="vti_contenttypeorder" Value="<!--Your custom Content Type ID here-->" Type="string" /> 
  </PropertyBag>
</Elements>
于 2016-02-04T19:44:16.987 に答える