页面重新加载后,webpart值消失了

时间:2015-03-13 10:08:29

标签: c# asp.net sharepoint-2013

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

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

}

以上是我的webpart控件

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

我使用以下代码

 this.WebPart.SavedCondition = "Admin";

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

根据sharepoint UI实践,一旦Web部件属性发生更改,用户需要单击“应用”以保存它。但是我怎样才能在编程方式中做到这一点?如果我需要提供更多信息或任何不清楚的信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

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

  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 =)