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

  1. Hope this customfiled est déjà disponible dans la bibliothèque de pages. Si pas vous assurer que le type de contenu source est déjà ajouté à la bibliothèque de pages.

  2. Essayez ce morceau de code

Alfter vous ajoutez yur la page faire une mise à jour.

newPublishingPage.Update();

En outre la mise à jour ce champ du listitem.

newPublishingPage.ListItem["PageContentCategory"] = pageContentCategory;
newPublishingPage.ListItem[FieldId.PublishingPageContent] = pageContent;
newPublishingPage.Title = pageTitle;
newPublishingPage.Update();
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top