【问题标题】:SharePoint - Set custom publishing page layout custom field programaticallySharePoint - 以编程方式设置自定义发布页面布局自定义字段
【发布时间】:2010-09-22 18:27:58
【问题描述】:

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

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

【问题讨论】:

    标签: dom sharepoint object-model page-layout


    【解决方案1】:

    尝试在newPublishingPage.Listitem 上调用Update 方法,而不是在newPublishingPage 本身上。 像这样:

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

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

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

    【讨论】:

    • 更新不是引发错误的原因。它试图设置导致它的值本身。如果我注释掉那一行,我的代码就可以正常工作。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2011-05-24
      • 1970-01-01
      • 2018-02-15
      • 2011-09-21
      相关资源
      最近更新 更多