2009-06-05 129 views
6

我经常使用GridViews,有时我会对某些代码放在哪里感到困惑。事件发生的顺序是什么,包括所有页面事件?在asp.net Gridview控件中触发事件的顺序是什么?

编辑: 我真的也想了解页面和Gridview之间会发生什么。这些事件是否会交叉?或者所有页面事件一次发生,那么所有的Gridview事件都会发生?不仅仅是GridView,任何控件 - 但主要是页面和GridView交互。

+0

真的,尝试为每个事件添加一个System.Diagnostics.Debug.Writeline,就像在我的答案中一样。在设计阶段向页面添加一个gridview,但实际上也尝试在Page_PreRender中添加一个。这真的会让你对发生的事情有一个很好的看法...... – Ropstah 2009-06-05 19:45:03

回答

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"); 
} 
+0

这对您将遇到的其他课程会派上用场。这样做是唯一可以确保事件正在发射的方法。微软 - 可以说它确实 - 但你怎么知道肯定?大声笑 – Ropstah 2009-06-05 19:17:13

7

如果你指的页面生命周期,你可以找到一个概述here

摘要的生命周期是:

页面请求

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

开始

在启动步骤中,页面属性,如Request和Response设置。在此阶段,页面还会确定请求是回发还是新请求,并设置IsPostBack属性。另外,在开始步骤中,页面的UICulture属性被设置。

页面初始化

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

负载

在负荷,如果当前请求是回发,控制性能装载有从视图状态恢复的信息和控制状态。

验证

在验证过程中,所有的验证控件的验证方法被调用,它设置单个验证控件和页的IsValid属性。

回发事件处理

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

渲染

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

卸载

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

至于GridView事件,他们可以找到here

相关问题