Compartilhar via


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

SPContentType class

SPContentType members

Microsoft.SharePoint namespace

Delete

Hidden

Outros recursos

Content Type Deletion