Partager via


SPContentType.Update - Méthode (Boolean)

Met à jour la définition de type de contenu qui est stockée dans la base de données et, le cas échéant, met à jour tous les types de contenu qui héritent de ce type de contenu.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Sub Update ( _
    updateChildren As Boolean _
)
'Utilisation
Dim instance As SPContentType
Dim updateChildren As Boolean

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

Paramètres

  • updateChildren
    Type : System.Boolean

    true pour pousser les modifications apportées au type de contenu sur les types de contenu qui en héritent ; dans le cas contraire, false.

Exceptions

Exception Condition
SPContentTypeSealedException

La propriété Sealed de ce type de contenu ou d'un enfant de ce type de contenu a la valeur true.

SPContentTypeReadOnlyException

La propriété ReadOnly de ce type de contenu ou d'un enfant de ce type de contenu a la valeur true.

Remarques

Lorsque vous apportez des modifications à un type de contenu de site via le modèle objet, votre code est réellement rendre ces modifications à la représentation en mémoire du type de contenu de site. Uniquement lorsque vous appelez la méthode UpdateSharePoint Foundation rendre ces modifications permanentes, en les validant à la définition de type de contenu qui est stockée dans la base de données de site.

Pour plus d'informations, consultez Updating Content Types.

Lorsque vous apportez des modifications à un type de contenu de site, vous pouvez décider de propager ou Pousser vers le bas, les modifications apportées au type de contenu parent à son enfant du site et de liste types de contenu.

Pour plus d'informations, consultez Updating Child Content Types.

Exemples

L'exemple suivant est une application console qui crée un lien de champ à l'aide d'une colonne de site existante, l'ajoute à un type de contenu de site et met ensuite à jour le type de contenu sans propager la modification à ses types de contenu enfants.

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();
        }
    }
}

Voir aussi

Référence

SPContentType classe

SPContentType - Membres

Update - Surcharge

Microsoft.SharePoint - Espace de noms

Autres ressources

Updating Content Types

Updating Child Content Types

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy