Share via


PublishingWeb.DefaultPage Property

Gets and sets the Welcome page for this PublishingWeb object.

Namespace:  Microsoft.SharePoint.Publishing
Assembly:  Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)

Syntax

'Declaration
Public Property DefaultPage As SPFile
    Get
    Set
'Usage
Dim instance As PublishingWeb
Dim value As SPFile

value = instance.DefaultPage

instance.DefaultPage = value
public SPFile DefaultPage { get; set; }

Property Value

Type: Microsoft.SharePoint.SPFile
The SPFile instance that is used as the Welcome page for this PublishingWeb object.

Exceptions

Exception Condition
[System.ArgumentNullException]

The value cannot be set to null.

[System.ArgumentException]

The SPFile must exist in this site.

Remarks

This property can only be set to an instance of the SPFile object within the current PublishingWeb. An instance of the SPFile object is returned rather than a PublishingPage object because the Welcome page might not be an instance of the PublishingPage class. Use the IsPublishingPage method to verify whether this SPFile is a PublishingPage.

This property may return a a null reference (Nothing in Visual Basic) value if a default page has not been explicitly set.

To save changes after setting this property, call the Update method.

Examples

This sample demonstrates setting and saving property values on a publishing Web. Before building and running this sample, verify that Publishing feature has been enabled for the SPWeb, and that the defaultPageFileId is SPFile.UniqueId for the new default page.

[c#]

using SPContentTypeId = Microsoft.SharePoint.SPContentTypeId;
using SPContentType = Microsoft.SharePoint.SPContentType;
using SPSite = Microsoft.SharePoint.SPSite;
using SPFile = Microsoft.SharePoint.SPFile;
using SPWeb = Microsoft.SharePoint.SPWeb;
using PublishingSite = Microsoft.SharePoint.Publishing.PublishingSite;
using PublishingWeb = Microsoft.SharePoint.Publishing.PublishingWeb;
using PageLayoutCollection = Microsoft.SharePoint.Publishing.PageLayoutCollection;
using PageLayout = Microsoft.SharePoint.Publishing.PageLayout;

namespace Microsoft.SDK.SharePointServer.Samples
{
    public static class PublishingWebCodeSamples
    {
        public static void SetPublishingWebProperties(SPWeb web, System.Guid defaultPageFileId)
        {
            // TODO: Replace these variable values and input parameters
            // with your own values.
            string newTitle = "your Title";                     // new PublishingWeb.Title value
            string newDescription = "your Description";         // new PublishingWeb.Description value
            bool resetInheritPageLayouts = true;                // new PublishingWeb.IsInheritingAvailablePageLayouts value
            bool resetInheritWebTemplates = true;               // new PublishingWeb.IsInheritingAvailableWebTemplates value

            // Validate the input parameters.
            if (null == web)
            {
                throw new System.ArgumentNullException("web");
            }

            // Get the PublishingWeb wrapper for the SPWeb 
            // that was passed in.
            PublishingWeb publishingWeb = null;
            if (PublishingWeb.IsPublishingWeb(web))
            {
                publishingWeb = PublishingWeb.GetPublishingWeb(web);
            }
            else
            {
                throw new System.ArgumentException("The SPWeb must be a PublishingWeb", "web");
            }

            //  Retrieve the SPFile.
            SPFile newDefaultPageFile = publishingWeb.Web.GetFile(defaultPageFileId);
            if( (null == newDefaultPageFile) ||
                !newDefaultPageFile.Exists )
            {
                throw new System.ArgumentException(
                    "The Guid does not match an SPFile on the SPWeb",
                    "defaultPageFileId");
            }

            // Set new values on the PublishingWeb.
            publishingWeb.Title = newTitle;
            publishingWeb.Description = newDescription;
            publishingWeb.DefaultPage = newDefaultPageFile;
            if( resetInheritPageLayouts && 
                !publishingWeb.IsInheritingAvailablePageLayouts  &&
                !publishingWeb.IsRoot)
            {
                publishingWeb.InheritAvailablePageLayouts();
                System.Diagnostics.Debug.Assert(publishingWeb.IsInheritingAvailablePageLayouts);
            }
            if (resetInheritWebTemplates && 
                !publishingWeb.IsInheritingAvailableWebTemplates &&
                !publishingWeb.IsRoot)
            {
                publishingWeb.InheritAvailableWebTemplates();
                System.Diagnostics.Debug.Assert(publishingWeb.IsInheritingAvailableWebTemplates);
            }

            // Save the new values on the PublishingWeb.
            publishingWeb.Update();
        }
    }
}

See Also

Reference

PublishingWeb Class

PublishingWeb Members

Microsoft.SharePoint.Publishing Namespace

WelcomePage