4

今、私は aCustom List Definition内で新しいを定義していますCustom Content Type。問題は、単にTitleリストに関連付けられたフィールドを非表示にできないことです。以下のリンクにあるいくつかのアプローチに従いましたが、成功しませんでした。

コンテンツ タイプを実装せずにを追加するだけList definitionでは Title フィールドが表示されなくなりますが、コンテンツ タイプとそのフィールドを定義すると、常に表示されます。

Elements.xml

  <ContentType ID="0x01003EBF692DD17B4F71966712180C0D23D8" Name="ContactUsAssignments"  
               Description="Contact Us Assignments content type">
    <FieldRefs>
      <FieldRef ID="{4B888F48-A039-46D0-B2E1-C67802097069}"/>
      <FieldRef ID="{6238a52d-2975-4e8a-9a1e-31b9cdc74129}"/>
      <RemoveFieldRef ID="{D3D0DDF1-F791-4FFF-893C-0C100B724F1A}" />
    </FieldRefs>
  </ContentType>

私も試しまし Inherits="FALSE" Version="0"たが、残念ながら何も変わりませんでした。

スキーマ.xml

  <ContentTypes>
    <ContentTypeRef ID="0x01003EBF692DD17B4F71966712180C0D23D8"></ContentTypeRef>
</ContentTypes>
<Fields>
  <Field Type="Text" DisplayName="Title" Required="FALSE"
   ID="{D3D0DDF1-F791-4FFF-893C-0C100B724F1A}" StaticName="Title" Name="Title" Hidden="TRUE" />
</Fields>

何かを見逃したかどうかは正確にはわかりませんが、アプローチは十分に明確です。ありがとう。

4

6 に答える 6

11

ここに記載されているすべての回答がテストされましたが、成功しませんでした。多くの調査と属性の組み合わせの後、私は以下の答えを実用的なものとして思いつきました。

を。それぞれElements.xmlのファイルで、次のlist Definitionことを確認してください

継承="FALSE"

のためにContent Type

Hidden="TRUE" Required="FALSE" DisplayName="_hidden"

" Title" フィールド定義用。

<ContentType ID="0x01007F465964D8114436BD7D7CF2C2D8CF01" Name="Categories" Group="Category CT" Description="Category content type" Inherits="FALSE">
    <FieldRefs>
      <FieldRef ID="{BA7EBEF9-338B-45DE-9743-E394873060A7}"/>
      <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Hidden="TRUE" Required="FALSE" DisplayName="_hidden" />
    </FieldRefs>
  </ContentType>

b. Titleフィールドの参照を削除しますschema.xml

于 2013-02-17T09:14:33.813 に答える
2

すべてのプロジェクトで機能する方法は次のとおりです。

すべてのカスタム コンテンツ タイプが定義されている element.xml で、次の行を追加して「タイトル」フィールドを非表示にします。OOTB の SharePoint タイトル フィールドであるため、GUID が同じであることを確認してください。

<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Title" Required="FALSE" Hidden="TRUE" />

プロパティ Required="FALSE" および Hidden="TRUE" は重要です。これらの行は、コンテンツ タイプで機能します。

もう 1 つの変更は、コンテンツ タイプの定義です。次のようになります。

<ContentType ID="0x01005E47745D75A5422A9688FDCC0E6E855A"
               Name="Links"
               Group="YourGroup"
               Description="YouDescription
               Inherits="FALSE"
               Version="0">

Inherits="FALSE" も非常に重要です。これは、フィールドを非表示にしてオプションにするために、コンテンツ タイプがデフォルトのアイテム プロパティを継承するのを停止する必要があるためです。

それが役に立てば幸い、

アンドリュー

于 2013-01-31T07:46:00.200 に答える
0

Elements.xmlファイルのContentType定義の上にタイトルフィールド定義を追加してみましたか?以下のelements.xmlファイルにフィールド定義を追加する2つの例を見つけました。それを実行して、RequiredをFalseに、HiddenをTrueに設定して、それが機能するかどうかを確認できます。

http://msdn.microsoft.com/en-us/library/gg295290%28v=office.14%29.aspx

http://www.codeproject.com/Articles/410880/SharePoint-2010-Creating-a-Custom-Content-Type-usi

私はこれを正確に行ったことはありませんが、時々不正行為を行い、リスト定義からコンテンツタイプを完全に削除し(<ContentTypes />のまま)、Schema.xmlのようにフィールドを宣言しました。この方法でそれを行うと、デフォルトのタイトルフィールドが上書きされます。

于 2013-01-30T04:41:42.087 に答える
0

イベント レシーバーでいくつかのコードを使用することを検討してください。

    private void HideTitleFormField(SPList list)
    {
        SPContentTypeCollection listCTCollection = list.ContentTypes;

        foreach (SPContentType ct in listCTCollection)
        {
            SPFieldLinkCollection fieldLinks = ct.FieldLinks;

            //whilst we are here: hide the file name so it cant be edited.
            fieldLinks["Title"].Hidden = true;
            fieldLinks["Title"].Required = false;

            ct.Update();          
        }
    }
于 2013-09-26T01:51:08.970 に答える
0

Inherits="False" に加えて Title フィールドの削除を指定してみてください。例えば

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <!-- Parent ContentType: Item (0x01) 
       Tracked user activity. -->
  <ContentType ID="0x0100c592d12a1dfa42ae8614d54f45118f83"
               Name="User Activity"
               Group="User Activity Tracking"
               Description="Tracked user activity."
               Inherits="FALSE"
               Version="0">
    <FieldRefs>
      <!--Title field inherited from parent Item content type is not required.-->
      <RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" />
      <FieldRef ID="{B2FCBA31-5888-4CB9-BCC8-7B1943161B40}" Name="UserActivityCreatedBy"/>
      <FieldRef ID="{B3F666F7-2DA3-402C-A1A2-A6AA9F4E3E86}" Name="UserActivityType"/>
      <FieldRef ID="{ABF63CC0-6201-44E7-BA8E-4C0116E5B09F}" Name="UserActivityTimeStamp"/>
    </FieldRefs>
  </ContentType>
</Elements>

リスト定義で、コンテンツ タイプへの参照を追加します

    <ContentTypes>
      <ContentTypeRef ID="0x0100c592d12a1dfa42ae8614d54f45118f83"/>
    </ContentTypes>

フィールドセクションでは、タイトルフィールドを記述しないでください

<Fields>
      <Field ID="{b2fcba31-5888-4cb9-bcc8-7b1943161b40}" Name="UserActivityCreatedBy" Type="User" List="UserInfo" ShowField="Title" UserSelectionMode="0" UserSelectionScope="0" ReadOnlyEnforced="TRUE" Required="TRUE" DisplayName="Created By" StaticName="UserActivityCreatedBy" Group="User Activity Tracking"/>
      <Field ID="{b3f666f7-2da3-402c-a1a2-a6aa9f4e3e86}" Name="UserActivityType" Type="Choice" Format="Dropdown" FillInChoice="FALSE" DisplayName="Type" StaticName="UserActivityType" Group="User Activity Tracking">
        <Default>HttpRequest</Default>
        <CHOICES>
          <CHOICE>Login</CHOICE>
          <CHOICE>HttpRequest</CHOICE>
          <CHOICE>TermsOfUsageAcceptance</CHOICE>
        </CHOICES>
      </Field>
      <Field ID="{abf63cc0-6201-44e7-ba8e-4c0116e5b09f}" Name="UserActivityTimeStamp" Type="DateTime" Format="DateTime" StorageTZ="UTC" DisplayName="Time Stamp" StaticName="UserActivityTimeStamp" Group="User Activity Tracking"/>
    </Fields>

また、適切なビューを記述することを忘れないでください - ViewFields セクション

        <ViewFields>
          <FieldRef Name="UserActivityCreatedBy" />
          <FieldRef Name="UserActivityType" />
          <FieldRef Name="UserActivityTimeStamp" />
        </ViewFields>
于 2013-01-30T21:00:45.633 に答える