Ajout la page d'édition> pourquoi ne pas conserver la mise en page au cours d'approvisionnement

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/12978

  •  16-10-2019
  •  | 
  •  

Question

Après l'approvisionnement d'un site, le nouveau site ne dispose pas de la mise en page à droite comme je l'ai chargé le code à. Je suis allé aux paramètres du site du nouveau site et cliqué sur la mise en page et un modèle de site. Et assez sûr, il héritait d'un parent au lieu d'utiliser ce que je dis à utiliser. hmm. Quelqu'un peut-il voir un défaut dans le code? Les pages de mise en page de page dans la liste.

private static void AddPage(SPSite site, SPWeb web, string pageName, string strPageTitle)
{
  PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
  PageLayout[] pageLayouts = publishingWeb.GetAvailablePageLayouts();
  PageLayout currPageLayout = null;
  foreach (PageLayout pl in pageLayouts)
    {
     if (pl.Name.Equals("RMLayout.aspx", StringComparison.InvariantCultureIgnoreCase))
          {
            currPageLayout = pl;
            break;
          }
    }
   PublishingPageCollection pages = publishingWeb.GetPublishingPages();
   PublishingPage newPage = pages.Add(pageName, currPageLayout);
   publishingWeb.Update();
   string content = "";  // "Welcome to <strong>My Page</strong>";
   newPage.ListItem[FieldId.PublishingPageContent] = content;
   newPage.Title = strPageTitle;

    newPage.ListItem.Update();
    newPage.Update();
    newPage.ListItem.File.CheckIn("System Checkin");
    newPage.ListItem.File.Publish("System Published");
}
Était-ce utile?

La solution 2

Je négligé le fait que je devais tourner sur le « Site Feature » afin que le récepteur d'événements webprovisioned coups de pied. Il y avait pas de bugs à corriger.

Merci tout le monde.

Autres conseils

Voici la partie qu'il ressemble manque de votre code:

// Create a list of page layouts
ArrayList newPageLayoutList = new ArrayList();
foreach (PageLayout pl in pageLayouts)
{
  if (pl.Name.Equals("RMLayout.aspx", StringComparison.InvariantCultureIgnoreCase))
  {
    newPageLayoutList.Add(pl); // add your pagelayout to this list
  }
}

// Assign your new list as the available page layouts
publishingWeb.SetAvailablePageLayouts(newPageLayoutList.ToArray(), false);
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top