0

アイテムのコンテンツタイプを継承するコンテンツタイプを作成しました。したがって、contenttypeには自動的にタイトルというフィールドがあります。

しかし、このフィールドにアクセスするにはどうすればよいですか(カスタム検証を追加して、編集フォームに表示されるかどうかを定義したい)?

サーバーサイド検証を行い、カスタムedititemformを使用したいと思います。Perhabsこのフィールドを削除/非表示にする可能性はありますか?

タイトルを非表示にするためにコンテンツタイプを変更しようとしました:

 <Field
  ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
  Name="Title"
  StaticName="Title"
  DisplayName="Title"
  Type="Text"
  FromBaseType="TRUE"
  Required="FALSE"
  Hidden="TRUE"
  SourceID="http://schemas.microsoft.com/sharepoint/v3"
/>



  <!-- Parent ContentType: Element (0x01) -->
  <ContentType ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce"
               Name="aa- aa"               
               Group="Custom Content Types"
               Description="My Content Type"
               Inherits="TRUE"
               Version="0">
      <FieldRefs>
        <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Hidden="TRUE" Required="FALSE" />

      </FieldRefs>

ただし、タイトルフィールドは引き続き必須であり、表示されます。

4

2 に答える 2

0

組み込みのタイトルフィールドは基本的に一意の識別子であり、表示する必要があるため、非表示にすることはできません。ただし、タイトルフィールドの名前を変更することはできますが、これは実際にはベストプラクティスと見なされており、実行する必要があります。

于 2012-05-29T09:09:25.330 に答える
0

私は問題を見つけました:

コンテンツタイプのタイトル列を削除するために非表示にする場合は、コンテンツタイプの取り込みを無効にする必要があります。しかし、嫌悪感を無効にした後、カスタム列は展開後に消えます。それらは基本タイプの一部ではないためです。したがって、フィールドはリストスキーマでも宣言する必要があります。

MSDN

SharePoint Foundationがリストインスタンスを作成するとき、リストの基本型スキーマまたはリストスキーマで宣言されている列のみが含まれます。リストスキーマでサイトコンテンツタイプを参照し、そのコンテンツタイプがリストの基本タイプスキーマまたはリストスキーマに含まれていないサイト列を参照している場合、それらの列は含まれません。これらの列をリストに含めるには、SharePointFoundationのリストスキーマでこれらの列を宣言する必要があります。

コンテンツタイプ

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}"
      DisplayName="ExpiresDate" Name="ExpiresDate"
      Type="DateTime" Required="False"
      UnlimitedLengthInDocumentLibrary="FALSE"/>


  <!-- Parent ContentType: Element (0x01) -->
  <ContentType ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce"
               Name="GroupsList - ContentTypeGroups"               
               Group="Custom Content Types"
               Description="My Content Type"
               Inherits="false"
               Version="0">
      <FieldRefs>
        <RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" />

      <FieldRef ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}" Name="ExpiresDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE" />
      </FieldRefs>
  </ContentType>
</Elements>

リストスキーマ

...

  <ContentTypes>

      <ContentTypeRef ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce" />
    </ContentTypes>
    <Fields>
      <Field ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}"
          DisplayName="ExpiresDate" Name="ExpiresDate"
          Type="DateTime" Required="False"
          UnlimitedLengthInDocumentLibrary="FALSE"/>

    </Fields>
...
于 2012-05-30T06:45:07.097 に答える