2009-09-25 38 views
2

我試圖創建一個內容類型,它將從聯繫人內容類型(隨附SharePoint)繼承。 我需要在那裏的大部分領域,但希望能夠刪除其中的一些。SharePoint內容類型:從父項中刪除列

有沒有一種方法可以通過內容類型的XML定義刪除我不想要的字段?

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ContentType ID="0x01004B56BB872BFE984D9611B5D8CF52CB60" Name="Child Contact" Description="Inherits from Contact" Group="..."> 
    <FieldRefs> 
    ??? What would I put there to remove fields that exist in the parent? 
    </FieldRefs> 
    </ContentType> 
</Elements> 

回答

3

使用此語法在內容類型定義:

<FieldRefs> 
     <RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name ="Title" /> 
</FieldRefs> 

你必須找到正確的ID對每個申請要刪除。

0

如果你不需要這些字段,那麼你爲什麼從第一個地方繼承那個內容類型?

+0

我需要一些字段,但不是全部。我從具有「Phonetic First Name」和「Phonetic Last Name」字段的聯繫人聯繫人類型繼承我想要刪除的字段...其餘字段均可。 – 2009-09-25 20:58:08

0

我建議你重新考慮你的內容類型繼承結構。定義一個父ct,它只包含兩個子ct共享的列,並將其他列添加到相應的子ct中。

把它看作是面向對象編程,你不會把僅用於繼承自類A的子類B的方法轉換爲該父類A,並且在該過程中使該方法在所有繼承自A的類中都可用,而他們將永遠在那裏使用,或者更糟的是,被誤用...

1

只需通過設置HIDDEN =「TRUE」屬性將它們隱藏在子內容類型中即可。 有關屬性的完整列表,請參閱here

+0

謝謝,非常有用的屬性列表。 – 2009-09-28 13:15:37