SPContentType.Delete method
Exclui o tipo de conteúdo.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public Sub Delete
'Uso
Dim instance As SPContentType
instance.Delete()
public void Delete()
Exceptions
Exception | Condition |
---|---|
SPException | Coleção pai do tipo de conteúdo é somente leitura. - ou - O tipo de conteúdo é o último tipo de conteúdo para o SPList em que reside o conjunto do tipo de conteúdo pai. - ou - O tipo de conteúdo está em uso. - ou - O tipo de conteúdo é parte de um recurso do aplicativo. |
ArgumentOutOfRangeException | O tipo de conteúdo já foi excluído de sua coleção pai. |
SPContentTypeSealedException | O tipo de conteúdo está bloqueado. |
SPContentTypeReadOnlyException | O tipo de conteúdo é somente leitura. |
Comentários
Você não pode excluir um tipo de conteúdo de site se ele está sendo usado como base para outros tipos de conteúdo do site ou lista. Você deve primeiro remover esse tipo de conteúdo de todas as listas que usá-la e exclua todos os filhos site tipos de conteúdo que sejam baseiam nele.
Você não pode excluir um tipo de conteúdo de uma lista, se a lista contém itens desse tipo de conteúdo. SharePoint Foundation não consideram os itens enviados para a Lixeira ao fazer essa determinação. Se os itens de um tipo específico de conteúdo forem restaurados para uma lista após o tipo de conteúdo foi excluído da lista, os itens são atribuídos o tipo de conteúdo padrão para essa lista.
Dica
Você pode desejar considerar uma alternativa para excluir itens simplesmente porque seu tipo de conteúdo está obsoleto. Tente deixar o ultrapassado tipo no lugar e definindo sua propriedade Hidden como truede conteúdo. Remove o tipo de conteúdo no menu novo em qualquer lista onde digitar o conteúdo é usado, impedindo que os usuários adicionem novos itens desse tipo de conteúdo à lista e, ao mesmo tempo em que preserva o conteúdo de itens existentes.
Examples
O exemplo a seguir consiste em dois métodos de um aplicativo maior. O primeiro método, DeleteListContentType, aceita um objeto SPContentType como seu único argumento. O método primeiro verifica se o objeto é derivado do conjunto de tipo de conteúdo da lista. Em seguida, o método chama um segundo método, DeleteListItems, passando a lista e a identificação de tipo de conteúdo como argumentos. O segundo método pesquisa a lista de itens de tipo de conteúdo especificado e exclui-los. Quando o controle é retornado para o método DeleteListContentType , ele exclui o tipo de conteúdo.
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();
}
Ver também
Referência
Microsoft.SharePoint namespace