共用方式為


SPContentType.Delete method

刪除內容類型。

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'宣告
Public Sub Delete
'用途
Dim instance As SPContentType

instance.Delete()
public void Delete()

Exceptions

Exception Condition
SPException

內容類型的父集合是唯讀的。

-或-

內容類型是SPList的內容類型的父集合所在的最後一個內容類型。

-或-

內容的型別是使用中。

-或-

內容類型是應用程式功能的一部分。

ArgumentOutOfRangeException

已從其父代集合刪除的內容類型。

SPContentTypeSealedException

內容型別為密封。

SPContentTypeReadOnlyException

內容類型是唯讀的。

備註

如果它正在使用為基礎的其他網站或清單的內容類型,您無法刪除網站的內容類型。您必須先從使用它,然後刪除所有子網站的內容類型為基礎的所有清單移除這個內容型別。

如果該清單包含該內容類型的項目,您無法從清單刪除內容的型別。SharePoint Foundation不會考慮進行這項決定時,傳送至資源回收筒] 的項目。如果特定的內容類型的項目會還原到清單中,已從該清單中刪除其內容類型之後,這些項目會指定該清單的預設內容類型。

提示

您可能要考慮的另一個方法只刪除項目因為其內容的型別已過時。請嘗試離開綁在一起內容的位置和Hidden屬性設定為 [ true中的型別。此內容在其中輸入任何清單中的 [新增] 功能表中的內容型別使用,以防止使用者將該內容類型的新項目加入至時同時保留現有的項目內容的清單上移除。

Examples

下列範例包含兩個方法從較大的應用程式。第一個方法,也就是DeleteListContentType,接受SPContentType物件,作為其唯一的引數。這個方法會先確認物件衍生自清單的內容型別集合。接著方法會呼叫第二種方法, DeleteListItems,傳遞做為引數的清單] 及 [內容類型識別碼。第二個方法會搜尋指定的內容類型的項目清單,並刪除它們。當控制項的DeleteListContentType方法傳回時,它會刪除內容的型別。

Function DeleteListContentType(ByRef ct As SPContentType) As Boolean
  ' Make sure we have a content type.
  If ct Is Nothing Then
     Throw New ArgumentException("Content type is null.")
  End If

  ' Make sure we have a list content type.
  If ct.ParentList Is Nothing Then
     Return False
  End If

  ' Delete list items of this content type.
  DeleteListItems(ct.ParentList, ct.Id)

  ' Check for read-only and sealed.
  If ct.ReadOnly Then
     ct.ReadOnly = False
  End If
  If ct.Sealed Then
     ct.Sealed = False
  End If

  ' Delete it.
  ct.Delete()
  Return True
End Function

Sub DeleteListItems(ByRef list As SPList, ByVal id As SPContentTypeId)
   Dim items As SPListItemCollection =  list.Items 
   Dim count As Integer =  items.Count  'Count will change
   Dim i As Integer
   For  i = count -1 To  0 Step  i - 1
      Dim item As SPListItem =  items(i) 
      If item.ContentType.Id = id Then
         item.Delete()
      End If
   Next
   list.Update()
End Sub
static bool DeleteListContentType(SPContentType ct)
{
   // Make sure we have a content type.
   if (ct == null)
      throw new ArgumentException("Content type is null.");

   // Make sure we have a list content type.
   if (ct.ParentList == null)
      return false;

   // Delete list items of this content type.
   DeleteListItems(ct.ParentList, ct.Id);

   // Check for read-only and sealed.
   if (ct.ReadOnly)
      ct.ReadOnly = false;
   if (ct.Sealed)
      ct.Sealed = false;

   // Delete it.
   ct.Delete();
   return true;
}

static void DeleteListItems(SPList list, SPContentTypeId id)
{
   SPListItemCollection items = list.Items;
   int count = items.Count;  //Count will change
   for (int i = count -1; i >= 0; i--) 
   {
      SPListItem item = items[i];
      if (item.ContentType.Id == id)
         item.Delete();
   }
   list.Update();
}

請參閱

參照

SPContentType class

SPContentType members

Microsoft.SharePoint namespace

Delete

Hidden

其他資源

Content Type Deletion