Question

J'ai un type de contenu de la page d'édition sur mesure, en fonction du type de publication de contenu Page d'article. 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:

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 définir 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 ça?

Était-ce utile?

La solution 2

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

Autres conseils

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

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

et alors vous avez besoin peut-être quelques-unes de ces lignes, en fonction de la configuration de votre bibliothèque de pages

newPublishingPage.Checkin();
newPublishingPage.Publish();
newPublishingPage.Approve();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top