有人可以解释为什么这段代码没有按预期工作:
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处理程序?
答案 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);
}