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.Booleantrue 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
Microsoft.SharePoint - Espace de noms