生成自动事件处理程序时,委托实例添加到事件的位置



当我在.aspx Web 窗体的设计视图中双击按钮 (myButton) 时,会在代码隐藏中自动生成一个事件处理程序:protected void myButton_Click(object sender, EventArgs e)

现在,如果我理解正确,为了将该方法与 Button.Click 事件相关联,必须在某个地方有类似的东西:myButton.Click += new EventHandler(this.myButton_Click);

但是,我似乎在任何地方都找不到。 我已经对整个解决方案使用了Ctrl + F,并且检查了mywebform.aspx.designer.cs。

起初我以为这是因为.aspx页面的AutoEventWireup设置为true。 但是,即使使 AutoEventWireup 为假,该按钮仍然通过运行代码来响应被单击protected void myButton_Click(object sender, EventArgs e)

我知道你不应该弄乱生成的代码,我也不打算这样做,我只是想更多地了解它在引擎盖下是如何工作的。

事件处理程序的分配实际上是在 asp 标记中完成的。 下面是一堆不同属性的链接,这些属性可以通过声明方式分配给按钮。

下面是另一个有关使用 OnClick 属性的 MSDN 链接。

我猜您的按钮的 ASP 标记分配了以下属性:

OnClick="myButton_Click"

至于它如何被翻译成作业,页面在第一次被请求时在运行时被编译(ASP.NET 编译概述)。

相关内容

  • 没有找到相关文章

最新更新