WebPart 上的用户控件、PostBack / ViewState 问题
Posted
技术标签:
【中文标题】WebPart 上的用户控件、PostBack / ViewState 问题【英文标题】:User Control on a WebPart, PostBack / ViewState Problem 【发布时间】:2011-03-17 04:08:15 【问题描述】:我正在使用 Sharepoint WebPart 来加载一个 UserControl,它有一个按钮,可以在 PostBack 上进行一些处理。我遇到了一个问题:当我第一次单击按钮时,数据加载! IsPosback 会丢失,但是当我再次单击该按钮时不会发生这种情况。我想我的问题在这里得到了解释:Sharepoint Lifecycle,但我还没有找到解决方法。
任何帮助将不胜感激。
其他信息: 我在 WebPart 的 OnLoad 事件上使用 EnsureChildControls,并在 CreateChildControls 上加载 UserControl。
【问题讨论】:
【参考方案1】:我能够通过以编程方式为用户控件指定一个 ID 来解决此问题。
例如:
protected void Page_Load(object sender, EventArgs e)
this.ID = "MyUserControlID";
更多信息在这里:http://bytes.com/topic/asp-net/answers/314816-dynamically-loaded-control-event-only-reached-2nd-postback
【讨论】:
这对我来说也是一个修复!我一直在努力解决这个问题 3 天!我一直在回发失去我的价值观。非常感谢!【参考方案2】:protected override void OnLoad(EventArgs e)
base.OnLoad(e);
if (ViewState["MyStuff"] == null)
LoadMyStuffAndSaveToViewState();
else
DoSomethingWith(ViewState["MyStuff"]);
【讨论】:
以上是关于WebPart 上的用户控件、PostBack / ViewState 问题的主要内容,如果未能解决你的问题,请参考以下文章