以编程方式创建包含webpart的webpart页面

我想创建几个webpart页面(以编程方式),其中包含自定义Web部件。 我搜索过internetz但找不到任何我可以上class的东西。

这是我到目前为止的代码(我创建了一个欢迎页面,而不是webpart页面):

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"); } } 

请帮帮我,

谢谢。

您可以使用SPLimitedWebPartManager和WebPart定义URL添加webpart。 这个例子应该让你开始:

 XmlTextReader reader = new XmlTextReader(new StringReader(web.GetFileAsString())); SPLimitedWebPartManager wpm = web.GetLimitedWebPartManager(, 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, , ); wpm.SaveChanges(wp); 

填写空白后,此代码将在您的发布页面上放置一个WebPart。 最后,当您为发布页面实例化WebPart管理器时,最重要的function是SPLimitedWebPartManager.ImportWebPartSPLimitedWebPartManager.AddWebPart

好的,做了一点挖掘…这是我的解决方案。

 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, "", 1); manager.SaveChanges(wp); } } }