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