PageLayout.AssociatedContentType - Propriété
Obtient ou définit l'objet associé à SPContentType qui est utilisé lors de la création d'un objet PublishingPage avec cet objet PageLayout .
Espace de noms : Microsoft.SharePoint.Publishing
Assembly : Microsoft.SharePoint.Publishing (dans Microsoft.SharePoint.Publishing.dll)
Syntaxe
'Déclaration
Public Property AssociatedContentType As SPContentType
Get
Set
'Utilisation
Dim instance As PageLayout
Dim value As SPContentType
value = instance.AssociatedContentType
instance.AssociatedContentType = value
public SPContentType AssociatedContentType { get; set; }
Valeur de propriété
Type : Microsoft.SharePoint.SPContentType
Le type de contenu page qui est associé à cet objet PageLayout .
Remarques
Cette propriété indique le contenu qui peut être rendus cet objet PageLayout .
Lorsqu'un objet PublishingPage est créé en fonction de cet objet de PageLayout , son ContentType est définie à la valeur de cette AssociatedContentType, qui permet à l'objet PublishingPage stocker des données qui peut être rendus cet objet PageLayout .
Le type de contenu de page est utilisé lors de la création d'un objet PublishingPage qui utilise cet objet PageLayout .
Si aucune AssociatedContentType a été spécifié dans l'objet PageLayout , la valeur par défaut pour la page de base SPContentType avec un ID égal à ContentTypeId.Page.
Exemples
Cet exemple remplace l'objet PageLayout pour tous les objets PublishingPage dans un site Web à un nouveau PageLayout qui restitue le même type de contenu.
Avant de compiler et d'exécuter cet exemple, vérifiez que les paramètres oldPageLayout et newPageLayout restituent le même contenu. Ils doivent utiliser la même valeur 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