2010-09-22 17 views
0

J'ai un type de contenu de page de publication personnalisé, basé sur le type de contenu Page d'article de publication. Sur ce type de contenu, j'ai un champ personnalisé nommé "PageContentCategory". Dans mon code pour créer de nouvelles pages, j'ai essayé ceci:SharePoint - Définir un champ personnalisé de mise en page de publication personnalisée par programmation

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

J'ai aussi essayé de le fixer par le nom du champ:

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

Ces deux méthodes une erreur. Est-il possible pour moi de définir la valeur de mon champ personnalisé dans le code comme ceci?

Répondre

0

Ainsi, la solution à mon problème était que je devais programme ajouter le type de contenu à la liste des pages au lieu de le laisser ajouter automatiquement la première fois qu'une page avec ce type de contenu a été ajoutée. Apparemment, si vous laissez SharePoint ajouter automatiquement le type de contenu à la liste des pages, il ne sera pas lié correctement. Donc, en ajoutant le type de contenu d'abord résolu mon problème.

0

Essayez d'appeler la méthode Update sur newPublishingPage.Listitem pas sur newPublishingPage lui-même. Comme ceci:

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

et peut-être vous avez aussi besoin de certaines de ces lignes, en fonction de la configuration de votre bibliothèque page

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

La mise à jour n'est pas ce qui provoque l'erreur. Il essaie de définir la valeur elle-même qui le provoque. Mon code fonctionne bien si je commente cette ligne. – TehOne