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属性,应该能实现同样的功能,可参考

Programmatically set webpart title in web part code

posted @ 2013-02-21 15:00  绿森林  阅读(133)  评论(0编辑  收藏  举报