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 问题的主要内容,如果未能解决你的问题,请参考以下文章

具有许多用户控件的共享点 webpart

为啥我的 WebPart 上的控件不显示?

在 Webpart 中的控件之间进行通信

在不包含 DIV 的用户控件中呈现 WebPart

SharePoint 2010 用户控件保存属性

基于编辑/浏览模式在 Webpart 中显示/隐藏控件