在asp.net Gridview控件中触发的事件序列是什么?

Eri*_*ric 6 asp.net events gridview sequence

我经常使用GridViews,有时候我会把某些代码放在哪里感到困惑.触发事件的顺序是什么,包括所有页面事件?

编辑: 我也真的想了解页面和Gridview之间发生了什么.事件有没有交叉过?或者所有页面事件一次发生,然后发生所有Gridview事件?而不仅仅是GridViews,任何控件 - 但主要是页面和GridView交互.

Jos*_*eph 7

如果您正在参考Page Life Cycle,可以在此处找到概述.

生命周期摘要是:

页面请求

页面请求在页面生命周期开始之前发生.当用户请求页面时,ASP.NET确定是否需要解析和编译页面(因此开始页面的生命周期),或者是否可以在不运行页面的情况下响应发送页面的缓存版本.

开始

在开始步骤中,设置页面属性,例如请求和响应.在此阶段,页面还确定请求是回发还是新请求,并设置IsPostBack属性.此外,在开始步骤期间,将设置页面的UICulture属性.

页面初始化

在页面初始化期间,页面上的控件可用,并且每个控件的UniqueID属性都已设置.任何主题也适用于页面.如果当前请求是回发,则尚未加载回发数据,并且控制属性值尚未恢复为视图状态中的值.

加载

在加载期间,如果当前请求是回发,则控制属性将加载从视图状态和控制状态恢复的信息.

验证

在验证期间,将调用所有验证器控件的Validate方法,该方法设置各个验证器控件和页面的IsValid属性.

回发事件处理

如果请求是回发,则调用任何事件处理程序.

渲染

在渲染之前,将为页面和所有控件保存视图状态.在呈现阶段,页面为每个控件调用Render方法,提供一个文本编写器,将其输出写入页面Response属性的OutputStream.

卸下

在页面完全呈现,发送到客户端并准备好被丢弃之后调用卸载.此时,将卸载响应和请求等页面属性,并执行任何清理.

至于GridView事件,可以在这里找到它们.


Rop*_*tah 3

protected void GridView1_Load(object sender, EventArgs e)
{
   System.Diagnostics.Debug.WriteLine("GridView1_Load");
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
   System.Diagnostics.Debug.WriteLine("GridView1_DataBinding");
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
   System.Diagnostics.Debug.WriteLine("GridView1_DataBound");
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   System.Diagnostics.Debug.WriteLine("GridView1_RowDataBound");
}
Run Code Online (Sandbox Code Playgroud)