Create a web page with a software web part

I want to create multiple pages of a web page (programmatically) using custom web parts. I searched the internet but could not find anything that could work.

Here is my code so far (where I create the welcome page, not the web page):

using (SPSite site = new SPSite("http://v99-sp-public/"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    PublishingSite pSite = new PublishingSite(site);
                    SPContentType ctype = pSite.ContentTypes["Welcome Page"];
                    PageLayoutCollection pageLayouts = pSite.GetPageLayouts(ctype, true);
                    PageLayout pageLayout = pageLayouts["/_catalogs/masterpage/welcomesplash.aspx"];
                    PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(web);
                    PublishingPageCollection pPages = pWeb.GetPublishingPages();
                    PublishingPage pPage = pPages.Add("Klanten2.aspx", pageLayout);
                    SPListItem newpage = pPage.ListItem;
                    newpage["Title"] = "Klanten";

                    newpage.Update();

                    newpage.File.CheckIn("Checkin");
                    newpage.File.Publish("Publisch");
                 }
              }

Please help me,

Thank.

+2
source share
2 answers

You can add web pages using SPLimitedWebPartManagerand your web page definition URL. In this example, you need to start:

XmlTextReader reader = new XmlTextReader(new StringReader(web.GetFileAsString(<Url to your .webpart file here>)));

SPLimitedWebPartManager wpm = web.GetLimitedWebPartManager(<URL to your page>, Syste.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

WebPart wp = (WebPart) wpm.ImportWebPart(reader, out errMsg);
wp.Title = "My Title for this webpart";

wpm.AddWebPart(wp, <Name of WebpartZone here, e.g. "Header">, <Zone Index here>);
wpm.SaveChanges(wp);

WebPart . SPLimitedWebPartManager.ImportWebPart SPLimitedWebPartManager.AddWebPart, WebPart .

+3

, ... .

using(SPSite site = new SPSite("http://my.dev.com"))
{
    using(SPWeb web = site.OpenWeb())
    {
        SPFile page = web.GetFile("SitePages/Welcome.aspx");
        using(SPLimitedWebPartManager manager = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
        {
            string errMsg = string.Empty;
            SPFile myWebPart = web.GetFile("_catalogs/wp/myWebPart.webpart");
            XmlTextReader read = newXmlReader(myWebPart.OpenBinaryStream());
            var wp = manager.ImportWebPart(read, out errMsg);
            manager.AddWebPart(wp, "<Webpart Zone>", 1);
            manager.SaveChanges(wp);
        }  
    }
}
0

All Articles