page_load另一个处理程序?

时间:2010-06-09 11:28:01

标签: asp.net

有人可以解释为什么这段代码没有按预期工作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class temp : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("foo<br>");
        this.Load += new EventHandler(temp_Load);

    }

    void temp_Load(object sender, EventArgs e)
    {
        Response.Write("bar<br>");
        Response.End();
    }
}

尝试为页面Load事件添加另一个处理程序,以便输出为:

foo<br>
bar<br>

修改

  

实际物体消失了   在回发上重新创建。 - ggonsalv

那么我怎么能修改内存中的方法,以便用新修改的方法创建新对象?

例如我想在下次加载页面时在运行时修改或添加page_init处理程序?

2 个答案:

答案 0 :(得分:1)

您需要在Page_Init中注册它。当Page_load触发时,它太迟了。

答案 1 :(得分:0)

您不能使用处理程序本身修改Load处理程序。它已经执行已经太晚了。为什么不简单地调用一个函数,因为对同一页面有多个加载处理程序没有多大意义:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("foo<br>");
    temp_Load(sender, e);
}