Looks like you may be missing a call to SPLimitedWebPartManager.SaveChanges. As @omlin points out, this isn't actually necessary.
Here is the code I'm using which is working fine:
using (SPSite site = new SPSite("http://servername/sites/test/"))
{
SPWeb web = site.OpenWeb();
SPFile webPartPage = web.GetFile("Pages/Default.aspx");
SPLimitedWebPartManager webPartManager = webPartPage.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
PageViewerWebPart pvwp = new PageViewerWebPart();
pvwp.Title = "My Page Viewer Web Part";
webPartManager.AddWebPart(pvwp, "TOP", 0);
// not actually needed
//webPartManager.SaveChanges(pvwp);
}
Things to check:
- Does your page need to be checked out? (Check
webPartPage.CheckOutStatus)
- Do you have permission?
- Are you receiving an error?
Reference
webPartPageobject? – Andrey Markeev May 13 '11 at 18:02SPFile webPartPage = web.GetFile("mypage.aspx")? :) – Andrey Markeev May 13 '11 at 18:25