当页面回发后,在page_load执行完毕后运行哪个语句?不知道页面中有什么控件。这是在VS 2008调试器中。
编辑: 问题是关于知道哪个事件以及接下来要进行哪种控制。
答案 0 :(得分:7)
- PreInit
- 初始化
- InitComplete
- 预加载
- 加载
- 控件事件(例如ButtonClick)
- LoadComplete
- 的PreRender
- SaveStateComplete
- 渲染
- 卸载
答案 1 :(得分:1)
“下一个声明”是不确定的。换句话说,在“关注点分离”的意义上,这不是你的担忧。这是ASP.NET的关注点,但不是页面上的单个控件,也不是单个开发人员调试页面的。
我建议你确定你真正需要回答的问题,以及你真正需要解决的问题。
以下是“为什么不”的示例:考虑DataBinding
事件,该事件是在调用Control.DataBind
方法时引发的,通常来自Page_Load
内部。考虑一个包含DataGrid
控件的页面。调用Control.DataBind
后,会为控件引发DataBinding
事件,然后在Control.DataBind
中的每个控件上调用Control.Controls
,最终导致DataBinding
成为DataGrid
为那些控制而筹集。当它到达Controls
时,控件将填充其PreInit
集合,输入数据中的每一行都有一行。
每个添加的控件都需要“赶上”。他们将完成Init
,Load
,DataBind
等各个阶段 - 一切都达到SelectedIndexChanged
。
没有办法提前知道将添加哪些控件,因此您无法确定将触发哪些事件以及以何种顺序触发。事实上,一些控制事件将触发或不触发,具体取决于控件的先前状态。如果下拉列表索引从上一次回发更改,则其中一行的模板列中的下拉控件上的{{1}}事件可能会触发,但如果它保持不变则不会触发!