页面重新加载后 webpart 值消失

webpart value gone after page reload

首先我使用的是sharepoint, 基本上我的 objective 很简单,我想做的是更新我的 webpart 属性并将其用于将来。

string _SavedCondition;
[WebBrowsable(false),
Category("New"),
Personalizable(PersonalizationScope.Shared),
WebDisplayName("ConditionStore")]
public string SavedCondition
{
    get;
    set;           

}

上面是我的webpart控件

我有一个按钮,当我点击我的按钮时,它会更新我的控件的值

我使用以下代码更新

 this.WebPart.SavedCondition = "Admin";

好的,这是我的问题,当我单击我的按钮时,我的值已更新并能够显示,但是当我关闭浏览器并再次重定向到该页面时,该值消失了。

按照共享点 UI 的做法,一旦 Web 部件属性发生更改,用户需要单击“应用”进行保存。但是我怎么能以编程方式做到这一点呢?如果我需要提供更多信息或任何不清楚的消息,请告诉我。

经过长时间的研究,我终于做到了

  SPWeb web = SPContext.Current.Web;
                SPFile file = web.GetFile(<PageURL>);
                SPLimitedWebPartManager manager = file.GetLimitedWebPartManager(PersonalizationScope.Shared);                
                web.AllowUnsafeUpdates = true;
                CustomWebPart webPart = (CustomWebPart)manager.WebParts[this.ID];
  //saved condition is my properties, u can find it from my questions above
                webPart.SavedCondition = "Something"; 
                manager.SaveChanges(webPart);
                web.AllowUnsafeUpdates = false;

当我执行 AllowUnsafeUpdates 和 SaveChanges 时,我的数据存储在 webpart =)