ASP.NET预加载回发事件

时间:2009-02-11 19:42:05

标签: asp.net events postback page-lifecycle

是否有任何类型的事件可以允许预加载回发事件。

我问的原因是我有一个控件,它会在回发事件中为它添加兄弟控件,但是,当它加载帖子时它已经太晚了,无法将新控件添加到控件集合中。因此,控件永远不会正确更新。

谢谢!

6 个答案:

答案 0 :(得分:1)

尝试Init事件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是一个快速的黑客攻击。您始终可以在init中查询__EventTarget和/或提交按钮的值,并可以动态加载控件。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

我刚刚找到this link,这对您也有用

答案 5 :(得分:0)

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

Dynamic Web Controls, Postbacks, and View State

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

ASP.NET Page Life Cycle Overview