2016-06-20 5 views
0

Мы запускаем сайт публикации SharePoint 2013 в режиме 2010 года. Раздел кода, который отлично работал в 2010 году, не работает после того, как я установил обновление CTP SharePoint 2013 (версия базы данных конфигурации: 15.0.4815.1000).SPLimitedWebpartManager сбрасывает пользовательские свойства веб-частей на SaveChanges

Я пытаюсь добавить пользовательский веб-сайт с настраиваемыми свойствами. В приведенном ниже коде добавляется веб-страница в правильную зону, но когда выполняется 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); 

Любая помощь очень ценится. Заранее спасибо.

Senthil S

UPDATE: Нашел проблему с разрешениями. Он создает новую страницу с заранее определенными веб-страницами и назначает пользователям права на управление только для страницы. Тем не менее, страница обновляется с соответствующими разрешениями, похоже, что SP не распознает ее до тех пор, пока не будет позже. Это может быть из-за некоторого времени. Если я добавлю веб-часть, олицетворяющую себя как администратор, все будет выглядеть нормально.

ответ

0

После добавления WebPart к SPLimitedWebPartManager вы должны сделать следующее

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

и/или использовать SetPersonalizationDirty() как

dsWebPart.SetPersonalizationDirty(); 
+0

Я хотел бы использовать это. Но поскольку он наследуется от веб-части SP, у меня нет возможности использовать метод SetPersonalizationDirty(). –