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
Microsoft.SharePoint-Namespace