Compartir a través de


de la propiedad PageLayout.AssociatedContentType

Obtiene o establece el objeto asociado SPContentType que se utiliza al crear un objeto PublishingPage con este objeto PageLayout .

Espacio de nombres:  Microsoft.SharePoint.Publishing
Ensamblado:  Microsoft.SharePoint.Publishing (en Microsoft.SharePoint.Publishing.dll)

Sintaxis

'Declaración
Public Property AssociatedContentType As SPContentType
    Get
    Set
'Uso
Dim instance As PageLayout
Dim value As SPContentType

value = instance.AssociatedContentType

instance.AssociatedContentType = value
public SPContentType AssociatedContentType { get; set; }

Valor de propiedad

Tipo: Microsoft.SharePoint.SPContentType
El tipo de contenido de página asociado a este objeto PageLayout .

Comentarios

Esta propiedad indica el contenido que se puede representar este objeto PageLayout .

Cuando se crea un objeto de PublishingPage basado en este objeto PageLayout , su ContentType se establece en el valor de este AssociatedContentType, que permite almacenar los datos que se puede representar este objeto PageLayout el objeto PublishingPage .

Cuando se crea un objeto PublishingPage que utiliza este objeto PageLayout , se utiliza el tipo de contenido de la página.

Si se ha especificado ningún AssociatedContentType en el objeto PageLayout , el valor predeterminado para la página base de SPContentType con un identificador igual a ContentTypeId.Page.

Ejemplos

En este ejemplo se reemplaza el objeto de PageLayout para todos los objetos PublishingPage de un sitio Web a un nuevo PageLayout que representa el mismo tipo de contenido.

Antes de compilar y ejecutar este ejemplo, compruebe que los parámetros oldPageLayout y newPageLayout representan el mismo contenido. Deben utilizar el mismo valor de AssociatedContentType .

using PublishingPage = Microsoft.SharePoint.Publishing.PublishingPage;
using SPListItem = Microsoft.SharePoint.SPListItem;
using SPFile = Microsoft.SharePoint.SPFile;
using SPModerationStatusType = Microsoft.SharePoint.SPModerationStatusType;
using PublishingWeb = Microsoft.SharePoint.Publishing.PublishingWeb;
using SPUser = Microsoft.SharePoint.SPUser;
using PageLayout = Microsoft.SharePoint.Publishing.PageLayout;
using PublishingPageCollection = Microsoft.SharePoint.Publishing.PublishingPageCollection;

namespace Microsoft.SDK.SharePointServer.Samples
{
    public static class PublishingPageCodeSamples
    {
        public static void SwapPageLayout(PublishingWeb publishingWeb, 
          PageLayout oldPageLayout, PageLayout newPageLayout)
        {
            // Replace these variable values and input parameters
            // with your own values.
            //
            // The comment to set when the page is checked in, published,
            // and approved.
            string checkInComment = "Your comments";
            //
            // Validate the input parameters.
            if (null == publishingWeb)
            {
                throw new System.ArgumentNullException("publishingWeb");
            }
            if (null == oldPageLayout)
            {
                throw new System.ArgumentNullException("oldPageLayout");
            }
            if (null == newPageLayout)
            {
                throw new System.ArgumentNullException("newPageLayout");
            }
            // Confirm that the oldPageLayout and newPageLayout are compatible.
            if (oldPageLayout.AssociatedContentType.Id != 
              newPageLayout.AssociatedContentType.Id)
            {
                throw new System.ArgumentException(
                    "The page layouts must render the same type of content",
                    "newPageLayout");
            }

            System.Guid oldPageLayoutId = oldPageLayout.ListItem.File.UniqueId;

            // Set the new PageLayout for all pages that use the old PageLayout.
            PublishingPageCollection publishingPages = 
              publishingWeb.GetPublishingPages();
            foreach (PublishingPage publishingPage in publishingPages)
            {
                if (publishingPage.Layout.ListItem.UniqueId == 
                  oldPageLayoutId)
                {
                    if (publishingPage.ListItem.File.CheckOutStatus == 
                      SPFile.SPCheckOutStatus.None)
                    {
                        publishingPage.CheckOut();
                    }

                    publishingPage.Layout = newPageLayout;
                    publishingPage.Update();

                    // The PublishingPage has the same SPContentType as its PageLayout.
                    System.Diagnostics.Debug.Assert(
                        publishingPage.ContentType.Parent.Id ==
                        newPageLayout.AssociatedContentType.Id);

                    publishingPage.CheckIn(checkInComment);
                }
            }

        }

    }
}
Imports PublishingPage = Microsoft.SharePoint.Publishing.PublishingPage
Imports SPListItem = Microsoft.SharePoint.SPListItem
Imports SPFile = Microsoft.SharePoint.SPFile
Imports SPModerationStatusType = Microsoft.SharePoint.SPModerationStatusType
Imports PublishingWeb = Microsoft.SharePoint.Publishing.PublishingWeb
Imports SPUser = Microsoft.SharePoint.SPUser
Imports PageLayout = Microsoft.SharePoint.Publishing.PageLayout
Imports PublishingPageCollection = Microsoft.SharePoint.Publishing.PublishingPageCollection

Namespace Microsoft.SDK.SharePointServer.Samples
    Public NotInheritable Class PublishingPageCodeSamples
        Private Sub New()
        End Sub
        Public Shared Sub SwapPageLayout(ByVal publishingWeb As PublishingWeb, ByVal oldPageLayout As PageLayout, ByVal newPageLayout As PageLayout)
            ' Replace these variable values and input parameters
            ' with your own values.
            '
            ' The comment to set when the page is checked in, published,
            ' and approved.
            Dim checkInComment As String = "Your comments"
            '
            ' Validate the input parameters.
            If Nothing Is publishingWeb Then
                Throw New System.ArgumentNullException("publishingWeb")
            End If
            If Nothing Is oldPageLayout Then
                Throw New System.ArgumentNullException("oldPageLayout")
            End If
            If Nothing Is newPageLayout Then
                Throw New System.ArgumentNullException("newPageLayout")
            End If
            ' Confirm that the oldPageLayout and newPageLayout are compatible.
            If oldPageLayout.AssociatedContentType.Id <> newPageLayout.AssociatedContentType.Id Then
                Throw New System.ArgumentException("The page layouts must render the same type of content", "newPageLayout")
            End If

            Dim oldPageLayoutId As System.Guid = oldPageLayout.ListItem.File.UniqueId

            ' Set the new PageLayout for all pages that use the old PageLayout.
            Dim publishingPages As PublishingPageCollection = publishingWeb.GetPublishingPages()
            For Each publishingPage As PublishingPage In publishingPages
                If publishingPage.Layout.ListItem.UniqueId = oldPageLayoutId Then
                    If publishingPage.ListItem.File.CheckOutStatus = SPFile.SPCheckOutStatus.None Then
                        publishingPage.CheckOut()
                    End If

                    publishingPage.Layout = newPageLayout
                    publishingPage.Update()

                    ' The PublishingPage has the same SPContentType as its PageLayout.
                    System.Diagnostics.Debug.Assert(publishingPage.ContentType.Parent.Id = newPageLayout.AssociatedContentType.Id)

                    publishingPage.CheckIn(checkInComment)
                End If
            Next publishingPage

        End Sub

    End Class
End Namespace

Vea también

Referencia

clase PageLayout

Miembros PageLayout

Espacio de nombres Microsoft.SharePoint.Publishing

Add

SPContentType