簡體   English   中英

SharePoint-以編程方式設置自定義發布頁面布局自定義字段

[英]SharePoint - Set custom publishing page layout custom field programatically

我有一個基於發布文章頁面內容類型的自定義發布頁面內容類型。 在此內容類型上,我有一個名為“ PageContentCategory”的自定義字段。 在創建新頁面的代碼中,我嘗試了以下操作:

PublishingPage newPublishingPage = this.currentPublishingWeb.GetPublishingPages().Add(pageName, newPageSelectedLayout);

if (pageContent.IsEmpty())
{
 pageContent = Properties.Resources.EAWorldArticleHandler_CreateNewArticlePage_DefaultPageContent;
}

newPublishingPage.ListItem[new Guid("{93496B35-7EC3-4132-B0D0-3BDC5606F5EF}")] = pageContentCategory;
newPublishingPage.ListItem[FieldId.PublishingPageContent] = pageContent;
newPublishingPage.Title = pageTitle;
newPublishingPage.Update();

我也嘗試通過字段名稱設置它:

PublishingPage newPublishingPage = this.currentPublishingWeb.GetPublishingPages().Add(pageName, newPageSelectedLayout);

if (pageContent.IsEmpty())
{
 pageContent = Properties.Resources.EAWorldArticleHandler_CreateNewArticlePage_DefaultPageContent;
}

newPublishingPage.ListItem["PageContentCategory"] = pageContentCategory;
newPublishingPage.ListItem[FieldId.PublishingPageContent] = pageContent;
newPublishingPage.Title = pageTitle;
newPublishingPage.Update();

這兩種方法都會引發錯誤。 有什么辦法可以在這樣的代碼中設置自定義字段的值?

嘗試在newPublishingPage.Listitem而不是newPublishingPage本身上調用Update方法。 像這樣:

newPublishingPage.ListItem["PageContentCategory"] = pageContentCategory;
newPublishingPage.ListItem.Update();

然后您可能還需要其中一些行,具體取決於頁面庫的配置

newPublishingPage.Checkin();
newPublishingPage.Publish();
newPublishingPage.Approve();

因此,解決我的問題的方法是,我必須以編程方式將內容類型添加到頁面列表中,而不是在第一次添加具有該內容類型的頁面時自動將其添加。 顯然,如果讓SharePoint自動將內容類型添加到頁面列表中,那么它將以某種方式無法正確綁定。 因此,添加內容類型首先解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM