Compartilhar via


SPContentType.Update method (Boolean)

Atualiza a definição de tipo de conteúdo que é armazenada no banco de dados e, opcionalmente, atualiza todos os tipos de conteúdo que herdam deste tipo de conteúdo.

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

Syntax

'Declaração
Public Sub Update ( _
    updateChildren As Boolean _
)
'Uso
Dim instance As SPContentType
Dim updateChildren As Boolean

instance.Update(updateChildren)
public void Update(
    bool updateChildren
)

Parâmetros

  • updateChildren
    Type: System.Boolean

    true para enviar as alterações feitas ao tipo de conteúdo para tipos de conteúdo que herdam dele; Caso contrário, false.

Exceptions

Exception Condition
SPContentTypeSealedException

A propriedade Sealed desse tipo de conteúdo ou de um filho desse tipo de conteúdo tem um valor de true.

SPContentTypeReadOnlyException

A propriedade ReadOnly desse tipo de conteúdo ou de um filho desse tipo de conteúdo tem um valor de true.

Comentários

Como fazer alterações a um tipo de conteúdo de site por meio do modelo de objeto, seu código está fazendo, na verdade, essas alterações à representação em memória do tipo de conteúdo de site. Somente quando você chamar o método UpdateSharePoint Foundation tornar essas alterações permanentes, por confirmá-las na definição de tipo de conteúdo que é armazenada no banco de dados do site.

Para obter mais informações, consulte Updating Content Types.

Quando você faz alterações em um tipo de conteúdo do site, você pode escolher propagar ou empurre para baixo, as alterações feitas no tipo de conteúdo pai para seu filho de site e listam tipos de conteúdo.

Para obter mais informações, consulte Updating Child Content Types.

Examples

O exemplo a seguir é um aplicativo de console que cria um vínculo do campo usando uma coluna de site existente, adiciona-la a um tipo de conteúdo de site e, em seguida, atualiza o tipo de conteúdo sem propagar a alteração para seus tipos de conteúdo filho.

Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
    Sub Main()
        Dim site As SPSite = New SPSite("https://localhost")
        Try
            Dim web As SPWeb = site.OpenWeb()
            Try
                Dim ctName As String = "Contact" ' Content type to modify
                Dim fldName As String = "Birthday" ' Site field to link to

                ' Get the content type to modify.
                Dim ct As SPContentType = web.ContentTypes(ctName) ' Null if not found
                If ct Is Nothing Then
                    Console.WriteLine("{0} is not a site content type.", ctName)
                End If

                ' Get the field to link to.
                Dim fld As SPField = Nothing
                Try
                    fld = web.Fields.GetField(fldName) ' Throws exception if not found
                Catch ex As ArgumentException
                    Console.WriteLine("{0} is not a site column.")
                End Try

                ' Add a field link to the content type. 
                If Nothing IsNot fld AndAlso Nothing IsNot ct Then
                    Dim lnk As New SPFieldLink(fld)
                    If Nothing Is ct.FieldLinks(lnk.Id) Then ' Does it exist in collection?
                        'No, so add it.
                        ct.FieldLinks.Add(lnk)

                        ' Update the content type.
                        Try
                            ct.Update(False) ' Do not push down
                            Console.WriteLine("A link to {0} has been added to content type {1}.", fldName, ctName)
                        Catch ex As SPException
                            Console.Write("Update failed. ")
                            Console.WriteLine(ex.Message)
                        End Try
                    Else ' We have a duplicate link
                        Console.WriteLine("Content type {0} already has a link to {1}.", ctName, fldName)
                    End If
                End If
            Finally
                web.Dispose()
            End Try
            Finally
                site.Dispose()
            End Try
        Console.Write(vbCrLf + "Press ENTER to continue...")
        Console.ReadLine()
    End Sub
End Module
using System;
using Microsoft.SharePoint;

namespace Test
{
    class ConsoleApp
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    string ctName = "Contact";   // Content type to modify
                    string fldName = "Birthday"; // Site field to link to

                    // Get the content type to modify.
                    SPContentType ct = web.ContentTypes[ctName]; // Null if not found
                    if (ct == null)
                        Console.WriteLine("{0} is not a site content type.", ctName);

                    // Get the field to link to.
                    SPField fld = null;
                    try
                    {
                        fld = web.Fields.GetField(fldName); // Throws exception if not found
                    }
                    catch (ArgumentException ex)
                    {
                        Console.WriteLine("{0} is not a site column.");
                    }

                    // Add a field link to the content type.
                    if (null != fld  && null != ct)
                    {
                        SPFieldLink lnk = new SPFieldLink(fld);
                        if (null == ct.FieldLinks[lnk.Id]) // Does it exist in collection?
                        {
                            //No, so add it.
                            ct.FieldLinks.Add(lnk);

                            // Update the content type
                            try
                            {
                                ct.Update(false); // Do not push down
                                Console.WriteLine("A link to {0} has been added to content type {1}.", fldName, ctName);
                            }
                            catch (SPException ex)
                            {
                                Console.Write("Update failed. ");
                                Console.WriteLine(ex.Message);
                            }
                        }
                        else // We have a duplicate link.
                        {
                            Console.WriteLine("Content type {0} already has a link to {1}.", ctName, fldName);
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}

Ver também

Referência

SPContentType class

SPContentType members

Update overload

Microsoft.SharePoint namespace

Outros recursos

Updating Content Types

Updating Child Content Types

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy