我经常使用GridViews,有时我会对某些代码放在哪里感到困惑。事件发生的顺序是什么,包括所有页面事件?在asp.net Gridview控件中触发事件的顺序是什么?
编辑: 我真的也想了解页面和Gridview之间会发生什么。这些事件是否会交叉?或者所有页面事件一次发生,那么所有的Gridview事件都会发生?不仅仅是GridView,任何控件 - 但主要是页面和GridView交互。
我经常使用GridViews,有时我会对某些代码放在哪里感到困惑。事件发生的顺序是什么,包括所有页面事件?在asp.net Gridview控件中触发事件的顺序是什么?
编辑: 我真的也想了解页面和Gridview之间会发生什么。这些事件是否会交叉?或者所有页面事件一次发生,那么所有的Gridview事件都会发生?不仅仅是GridView,任何控件 - 但主要是页面和GridView交互。
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");
}
这对您将遇到的其他课程会派上用场。这样做是唯一可以确保事件正在发射的方法。微软 - 可以说它确实 - 但你怎么知道肯定?大声笑 – Ropstah 2009-06-05 19:17:13
如果你指的页面生命周期,你可以找到一个概述here。
摘要的生命周期是:
页面请求
页生命周期开始之前发生的页面请求。当用户请求页面时,ASP.NET会确定是否需要分析和编译页面(因此开始页面的生命周期),或者是否可以在不运行页面的情况下发送缓存版本的页面作为响应。
开始
在启动步骤中,页面属性,如Request和Response设置。在此阶段,页面还会确定请求是回发还是新请求,并设置IsPostBack属性。另外,在开始步骤中,页面的UICulture属性被设置。
页面初始化
在页面初始化时,页面上的控件可用,并且每个控件的UniqueID属性设置。任何主题也适用于页面。如果当前请求是回发,则回发数据尚未加载,并且控件属性值尚未从视图状态恢复为值。
负载
在负荷,如果当前请求是回发,控制性能装载有从视图状态恢复的信息和控制状态。
验证
在验证过程中,所有的验证控件的验证方法被调用,它设置单个验证控件和页的IsValid属性。
回发事件处理
如果请求是回发,任何事件处理程序被调用。
渲染
在渲染之前,视图状态保存的页面和所有控件。在渲染阶段,页面为每个控件调用Render方法,提供一个文本编写器,将其输出写入页面的Response属性的OutputStream。
卸载
后的页面已经被完全呈现卸载被调用时,发送到客户端,并准备将其丢弃。此时,响应和请求等页面属性被卸载并执行任何清理。
至于GridView事件,他们可以找到here。
在ASP.NET 2.0 Event Order有更长的列表(注意这是2.0)。
真的,尝试为每个事件添加一个System.Diagnostics.Debug.Writeline,就像在我的答案中一样。在设计阶段向页面添加一个gridview,但实际上也尝试在Page_PreRender中添加一个。这真的会让你对发生的事情有一个很好的看法...... – Ropstah 2009-06-05 19:45:03