SharePoint - программно настраивать настраиваемое поле макета страницы публикации - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть пользовательский тип содержимого страницы публикации, основанный на типе содержимого страницы публикации статьи.Для этого типа контента у меня есть настраиваемое поле с именем «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();

Оба эти метода выдают ошибку.Есть ли способ для меня, чтобы установить значение моего настраиваемого поля в коде, как это?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Итак, решение моей проблемы состояло в том, что мне пришлось программно добавлять тип контента в список страниц, а не разрешать его автоматическое добавление при первом добавлении страницы с таким типом контента.Очевидно, что если вы позволите SharePoint автоматически добавлять тип содержимого в список страниц, то он как-то не будет привязан должным образом.Поэтому добавление типа контента сначала решило мою проблему.

0 голосов
/ 22 сентября 2010

Попробуйте вызвать метод Update для newPublishingPage.Listitem, а не для newPublishingPage. Как это:

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

и тогда вам, возможно, понадобятся некоторые из этих строк, в зависимости от конфигурации вашей библиотеки страниц

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