0

我有一个基于发布文章页面内容类型的自定义发布页面内容类型。在这种内容类型上,我有一个名为“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();

这两种方法都会引发错误。有什么方法可以让我在这样的代码中设置自定义字段的值吗?

4

2 回答 2

0

尝试在其自身上调用该Update方法。像这样:newPublishingPage.ListitemnewPublishingPage

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

然后您可能还需要其中一些行,具体取决于您的页面库的配置

newPublishingPage.Checkin();
newPublishingPage.Publish();
newPublishingPage.Approve();
于 2010-09-22T19:09:47.427 回答
0

因此,我的问题的解决方案是我必须以编程方式将内容类型添加到页面列表中,而不是在第一次添加具有该内容类型的页面时自动添加它。显然,如果您让 SharePoint 自动将内容类型添加到页面列表,那么它会以某种方式无法正确绑定。所以添加内容类型首先解决了我的问题。

于 2011-02-01T19:48:04.783 回答