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.Booleantrue 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
Microsoft.SharePoint namespace