0

Publishing Article Page コンテンツ タイプに基づいて、カスタムの発行ページ コンテンツ タイプがあります。このコンテンツ タイプには、「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

したがって、私の問題の解決策は、そのコンテンツ タイプを持つページが初めて追加されたときに自動的に追加されるのではなく、プログラムでページ リストにコンテンツ タイプを追加する必要があったことです。どうやら、SharePoint にコンテンツ タイプをページ リストに自動的に追加させると、どういうわけか適切にバインドされません。そのため、最初にコンテンツタイプを追加することで問題が解決しました。

于 2011-02-01T19:48:04.783 に答える
0

それ自体ではなく、Updateメソッドを呼び出してみてください。このような:newPublishingPage.ListitemnewPublishingPage

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

ページ ライブラリの構成によっては、これらの行のいくつかが必要になる場合もあります。

newPublishingPage.Checkin();
newPublishingPage.Publish();
newPublishingPage.Approve();
于 2010-09-22T19:09:47.427 に答える