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