【问题标题】:ASP.NET Preload Post Back EventASP.NET 预加载回发事件
【发布时间】:2009-02-11 19:42:05
【问题描述】:

是否存在允许预加载回发事件的任何类型的事件。

我问的原因是我有一个控件,它可以在回发事件中向它添加同级控件,但是,当它加载回发时,为时已晚,无法将新控件添加到控件集合中。因此,控件永远不会正确更新。

谢谢!

【问题讨论】:

    标签: asp.net events postback page-lifecycle


    【解决方案1】:

    尝试 Init 事件。

    【讨论】:

      【解决方案2】:

      覆盖CreateChildControls(确保调用base!)。在您的回发事件处理程序中,确保您将应动态创建的控件列表存储在某处,因此当CreateChildControls 在下一轮生命周期的早期被调用时,它将重新创建构建在最后一个回发。

      【讨论】:

        【解决方案3】:

        这是一个快速破解。您可以随时在 init 中查询 __EventTarget 和/或提交按钮的值,并可以动态加载控件。

        但这样做可能不合适,因为您的控制层次结构会改变并可能导致问题。

        【讨论】:

          【解决方案4】:

          如上所述,必须在页面 Init 事件期间添加动态控件,以便在页面的 Viewstate 中正确处理它们。您可能还想关闭页面的 Viewstate,因为如果控件发生更改,它可能会向您触发错误。

          【讨论】:

            【解决方案5】:

            如前所述,添加动态控件的正确位置是在 Init 事件中。 这是一篇包含更多信息的文章。

            Dynamic Web Controls, Postbacks, and View State

            要更好地了解 ASP .NET 页面生命周期,请参阅:

            ASP.NET Page Life Cycle Overview

            【讨论】:

              【解决方案6】:

              This page 在回发中解释了事件顺序(以及每个事件中发生的情况),它对我的​​帮助不止一次。

              我刚刚找到this link,对你也有用

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-11-23
                相关资源
                最近更新 更多