2012-05-31 66 views
1

我试图以编程方式更新一些webparts的标题。为此,我从网站获取所有页面,获取每个页面的Web部件,并首先打印出当前标题,将其更改并再次打印出来以验证标题是否已正确更改。不过,如果我后来检查,我仍然看到webparts的旧标题...我错过了什么?以编程方式更新webpart属性不会更新

的代码如下:

... getting the pages for the site... 
SPFile ofile = page.File; 

SPLimitedWebPartManager wpColl = ofile.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.User); 
int cont = wpColl.WebParts.Count; 

for (int i = 0; i < cont; i++) 
{ 
    System.Web.UI.WebControls.WebParts.WebPart wp1 = wpColl.WebParts[i]; 

Console.WriteLine(" - Title : " + wp1.Title); 

wp1.Title = "test" + i; 

ofile.Update(); 
Console.WriteLine(" - New title: " + wp1.Title); 

page.Update(); 
site.Update();        
} 

谢谢!

回答

3

可能是你应该使用SPLimitedWebPartManager.Save(Web部件的WebPart)方法保存修改的属性

+0

优秀的,成功了!我简单地将下面的代码行添加到我的代码中,并最终更新了webpart标题:wpColl.SaveChanges(wp1); – Aidenn

1

在更新之前,您是否尝试设置site.AllowUnsafeUpdates = true