我们正在以2010模式运行SharePoint 2013发布网站。安装SharePoint 2013 CTP更新后,以前在2010年正常工作的代码部分无效(配置数据库版本: 15.0.4815.1000)。
我正在尝试添加自定义属性的自定义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);
非常感谢任何帮助。提前谢谢。
Senthil S
更新:发现权限问题。它创建一个带有预定义webpart的新页面,并为页面分配用户管理权限。尽管如此,页面更新了适当的权限,似乎SP直到某个时候才识别它。可能是因为某些时间问题。如果我添加作为管理员模仿的Web部件,一切看起来都很好。
答案 0 :(得分:0)
将WebPart添加到SPLimitedWebPartManager后,您应该执行以下操作
wpManager.SaveChanges(dsWebPart);
web.Update();
和/或使用SetPersonalizationDirty()之类的
dsWebPart.SetPersonalizationDirty();