using (SPSite spSiteTest = new SPSite(webURL))
{ SPFile file = null;
using (SPWeb web = spSiteTest.OpenWeb())
{ try
{ file = web.GetFile(webPageURL);
if (file.Level == SPFileLevel.Checkout)
{ file.CheckIn("Checkin before replace"); file.CheckOut();
}
else
{ file.CheckOut();
}
SPLimitedWebPartManager webPartMgr = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
for (int k = 0; k < webPartMgr.WebParts.Count; k++)
{ System.Web.UI.WebControls.WebParts.WebPart wpOld = webPartMgr.WebParts[k];
if (string.Compare(wpOld.GetType().Name.Trim(), webPartName.Trim(), true) == 0)
{ //Read old webpart properties
string zoneID = webPartMgr.GetZoneID(wpOld);
string storageKey = webPartMgr.GetStorageKey(wpOld).ToString();
//create new webpart object
MyNewWebPart wpNew = new MyNewWebPart();
wpNew.Title = wpOld.Title;// "Web Part Title";
wpNew.ChromeState = wpOld.ChromeState;// System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
wpNew.ChromeType = wpOld.ChromeType;// System.Web.UI.WebControls.WebParts.PartChromeType.None;
webPartMgr.DeleteWebPart(wpOld);
//Add new webpart object to webparts collection
webPartMgr.AddWebPart(wpNew, zoneID, 0);
file.Update();
web.Update();
}
}
}
catch (Exception ex)
{ if (file != null && file.Level == SPFileLevel.Checkout)
{ file.UndoCheckOut();
}
}
finally
{ if (file != null && file.Level == SPFileLevel.Checkout)
{ file.CheckIn("Added"); }
web.AllowUnsafeUpdates = false;
}
}
}