SharePoint【学习笔记】-- 后台代码修改Webpart属性无法保存
背景:一个继承System.Web.UI.WebControls.WebParts的Webpart需要根据requert传进来的参数修改webpat标题,CreateChildControls中代码如下
if (string.IsNullOrEmpty(this.Page.Request["rebuildurl"])) { Title = this.Page.Request["rebuildurl"].Trim(); //base.SetPersonalizationDirty(); //Description = "点击查看更多信息"; }
结果发现URl去掉参数后,Webpart标题又恢复到原来状态,this.Title的值并没有保存下,查了一个上午终于找到一篇文章提到这问题
When does custom properties of a web part get saved?
里面提到需要使用base.SetPersonalizationDirty();指示个性化数据已经修改,茅塞顿开!
if (string.IsNullOrEmpty(this.Page.Request["rebuildurl"])) { Title = this.Page.Request["rebuildurl"].Trim(); base.SetPersonalizationDirty(); //Description = "点击查看更多信息"; }
备注:上面的方法在继承System.Web.UI.WebControls.WebParts的webpart上有效,
继承自
Microsoft.SharePoint.WebPartPages.WebPart的webpart有一个
SaveProperties属性,应该能实现同样的功能,可参考