ASP.NET tiene una característica llamada "AutoEventWireup" - esta característica le permite crear métodos que tienen la firma EventHandler
con nombres como Page_Load
y el tiempo de ejecución será de cable hasta el evento desde la página principal con el método en su clase. Básicamente, el tiempo de ejecución hace esto en su nombre:
this.Load += this.Page_Load;
Ahora bien, es mejor desactivar AutoEventWireup y, o bien crear estos controladores de eventos en el mismo método de páginas OnInit
o simplemente reemplazar el método de la página principal OnLoad
.
Editar (en respuesta al comentario de OP a continuación): Este proceso no cubre los clics de botón pero el proceso es similar.
Para que un método como MyButton_Click
a trabajar sin que crear explícitamente un controlador de eventos que tendría que establecer el atributo OnClick
en el control en el archivo aspx como esto:
<asp:button
id="MyButton"
onClick="MyButton_Click"
runat="server" />
ello se estimularía ASP. NET para crear el botón haga clic en delegar para usted y adjúntelo al evento Click
del botón.
¿Esto también cubre los controles con ID? ¿Podría escribir MyButton_Click? –
¿Por qué la recomendación de deshabilitar AutoEventWireup? – M4N
@Martin: la generación de delegados para el cableado ocurre en el momento de la ejecución y es más lenta que simplemente anular un método. @Orion: no cubre los clics de los botones, pero el proceso es similar.Para que un método como 'MyButton_Click' funcione sin que usted cree explícitamente un controlador de eventos, deberá establecer el atributo' OnClick' en el control en un archivo aspx como este: 'OnClick =" MyButton_Click "'. Esto haría que ASP.NET cree el botón haga clic en delegar para usted y lo agregue al evento 'Click' del botón. –