2012-05-31 133 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