webpart的价值在页面重新加载后消失

问题描述:

首先我使用sharepoint, 基本上我的目标很简单,我想要做的是更新我的web部件属性并将其用于将来。webpart的价值在页面重新加载后消失

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

} 

以上是我的web部件控制

我有一个按钮,当我点击我的按钮,它将更新我的控制值

我通过使用以下代码upaded

this.WebPart.SavedCondition = "Admin"; 

好吧,所以这里是我的问题,当我点击我的按钮,我的价值更新并能够显示,但是当我关闭我的浏览器并重新导向到页面时,价值已经消失。

根据sharepoint UI实践,一旦web部件属性发生变化,用户需要点击apply来保存它。但是,我怎么能在编程方式呢?请告诉我是否需要提供更多信息或任何不明确的信息。

我做了长期的研究后,我终于做到了

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,我的数据存储在Web部件=)