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();
}
請參閱
參照
Microsoft.SharePoint namespace