2010-09-22 2 views
0

У меня есть тип контента для отдельной публикации, основанный на типе содержимого страницы публикации. В этом типе контента у меня есть собственное поле под названием «PageContentCategory». В моем коде для создания новых страниц, я попытался это:SharePoint. Задайте настраиваемое поле настраиваемого пользовательского поля публикации публикации.

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(); 

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

ответ

0

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

0

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

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

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

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

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

Смежные вопросы