Freigeben über


SPContentType.Delete-Methode

Löscht den Inhaltstyp.

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

Syntax

'Declaration
Public Sub Delete
'Usage
Dim instance As SPContentType

instance.Delete()
public void Delete()

Ausnahmen

Ausnahme Bedingung
SPException

Die übergeordneten Auflistung des Inhaltstyps ist schreibgeschützt.

-ODER-

Der Inhaltstyp ist der letzte Inhaltstyp für die SPList , auf dem die übergeordneten Auflistung des Inhaltstyps befindet.

-ODER-

Der Inhaltstyp wird verwendet.

-ODER-

Der Inhaltstyp ist Teil einer Anwendungsfeatures.

ArgumentOutOfRangeException

Der Inhaltstyp wurde bereits aus der übergeordneten Auflistung gelöscht.

SPContentTypeSealedException

Der Inhaltstyp ist versiegelt.

SPContentTypeReadOnlyException

Der Inhaltstyp ist schreibgeschützt.

Hinweise

Einen Websiteinhaltstyp kann nicht gelöscht werden, wenn sie als Grundlage für andere Inhaltstypen Website oder Liste verwendet wird. Sie müssen zuerst dieses Inhaltstyps aus allen Listen entfernt, die es verwenden und löschen Sie dann auf alle untergeordneten Websiteinhaltstypen, die darauf basieren.

Sie können einen Inhaltstyp aus einer Liste löschen, wenn dieser Liste Elemente dieses Inhaltstyps enthält. SharePoint Foundation berücksichtigt keine Elemente in den Papierkorb gesendet werden, wenn diese Ermittlung zu tätigen. Wenn Elemente eines bestimmten Inhaltstyps zu einer Liste wiederhergestellt werden, nachdem Sie ihren Inhaltstyp aus dieser Liste gelöscht wurde, werden diese Elemente für die Liste den Standard-Inhaltstyp zugewiesen.

Tipp

Möglicherweise möchten Sie eine Alternative zum Löschen von Elementen einfach berücksichtigen, da ihre Inhaltstyp veraltet ist. Lassen Sie die veralteten Inhaltstyp und dessen Hidden -Eigenschaft auf truefestlegen. Diese entfernt, die der Inhaltstyp aus dem Menü neu auf eine beliebige Liste, in denen der Inhaltstyp, verwendet wird daher verhindert, dass Benutzer Hinzufügen neuer Elemente dieses Inhaltstyps in die Liste und gleichzeitig den Inhalt von vorhandenen Elementen beibehalten.

Beispiele

Das folgende Beispiel besteht aus zwei Methoden aus einer größeren Anwendung. Die erste Methode DeleteListContentType, akzeptiert ein SPContentType -Objekt als einziges Argument. Die Methode prüft zuerst an, dass das Objekt aus einer Liste inhaltstypauflistung abgeleitet ist. Die Methode ruft dann eine zweite Methode DeleteListItems, die Liste und die Inhaltstyp-ID als Argumente übergeben. Die zweite Methode die Liste Elemente des angegebenen Inhaltstyps sucht und löscht sie. Wenn das Steuerelement an die DeleteListContentType -Methode zurückgegeben wird, wird den Inhaltstyp gelöscht.

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();
}

Siehe auch

Referenz

SPContentType Klasse

SPContentType-Member

Microsoft.SharePoint-Namespace

Delete

Hidden

Weitere Ressourcen

Content Type Deletion