繁体   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