2016-06-20 30 views
0

我們在2010模式下運行SharePoint 2013發佈站點。在我安裝了SharePoint 2013 CTP更新(配置數據庫版本: 15.0.4815.1000)後,2010年用於正常工作的部分代碼無法正常工作。SPLimitedWebpartManager重置SaveChanges上的自定義Web部件屬性

我正在嘗試添加自定義屬性的自定義webpart。下面的代碼將webpart添加到正確的區域,但是當SPLimitedWebPartManager.SaveChanges(webpart)執行時,它會將自定義屬性值重置爲默認值。

var wpManager = web.GetLimitedWebPartManager(page.ListItem.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared) 
var dsWebPart = new DocumentSetBridge() 
     { 
      Title = "Shared Resource(s)", 
      ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None, 
      KnowledgeCenterAssetsLibraryItemId = documentSetUniqueGuid, 
      ID = KnowledgeCenterSettings.DocumentSetBridgeWebPartId, 
      ShowManageDocLink = true, 
      IsUserCommunityDS = true 
     }; 
wpManager.AddWebPart(dsWebPart, UserGroupSettings.DOCUMENTSET_WEBPART_ZONE_ID, UserGroupSettings.DOCUMENTSET_WEBPART_ZONE_INDEX); 

任何幫助,非常感謝。提前致謝。

塞特希小號

UPDATE:發現問題的權限。它使用預定義的Web部件創建一個新頁面,併爲該頁面分配用戶管理權限。儘管如此,該頁面已經以適當的權限進行了更新,但似乎SP直到以後纔會識別它。這可能是由於某個時間問題。如果我添加模擬爲管理員的Web部件,一切看起來都不錯。

回答

0

添加的WebPart到SPLimitedWebPartManager後,你應該做到以下幾點

wpManager.SaveChanges(dsWebPart); 
web.Update(); 

和/或使用SetPersonalizationDirty()

dsWebPart.SetPersonalizationDirty(); 
+0

我希望我能使用它。但是,因爲它是從SP webpart繼承的,所以我沒有選擇使用SetPersonalizationDirty()方法。 –

相關問題