作品:
protected void Page_Load(object sender, EventArgs e)
{
myButton.Click += new EventHandler(myButton_Click);
}
不起作用:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myButton.Click += new EventHandler(myButton_Click);
}
}
现在,我在第二个示例中所期望的是事件处理程序仅在它不是回发时(即第一次加载页面时)才连接到按钮,然后在任何回发时,按钮将不再运行与事件关联的方法。情况似乎并非如此 --- 从第一次加载(不是回发)开始,按钮在单击时什么也不做。
我怀疑这与页面生命周期有关——但我不太确定这属于哪一种。如果我理解正确,与事件关联的方法会在页面回发后运行(即使您在页面第一次加载时单击它),但我指的是事件与方法的连接EventHandler 委托,而不是关联方法的实际运行。
注意:这纯粹是为了更好地了解幕后发生的事情,而不是试图解决现实世界的问题。