asp.net - net - asp button
asp.net: cómo usar eventargs para pasar parámetros en el botón onclick? (3)
He visto un código en el que las personas pasan el parámetro a través de commandParameter Property of web control. Entonces, ¿cuál es el uso de eventargs?
Esto puede ser útil si tiene el mismo método EventHandler para diferentes botones. Por ejemplo, supongamos que tu marcado se ve así:
<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
CommandName="ThatBtnClick" OnClick="MyBtnHandler" />
Puede tener el mismo controlador de eventos para ambos botones y diferenciar según CommandName:
protected void MyBtnHandler(Object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.CommandName)
{
case "ThisBtnClick":
DoWhatever(btn.CommandArgument.ToString());
break;
case "ThatBtnClick":
DoSomethingElse(btn.CommandArgument.ToString());
break;
}
}
La clase EventArgs
es una clase base. Otros métodos web usan otros eventos args.
por ejemplo, un LinkButton tiene un evento OnClick con un parámetro EventArgs predeterminado, pero también tiene un evento OnCommand que toma un parámetro CommandEventArgs : EventArgs
que tiene cierta información adicional (a saber, CommandName y CommandArgument).
La clase base de eventos args está allí como un marcador de posición para que todos los manejadores de sucesos se ajusten a una firma similar.
Varios controles de tipo Botón en .NET tienen un evento OnCommand
así como un evento OnClick
. Cuando utiliza el evento OnCommand
tiene parámetros adicionales que puede aplicar al Botón como CommandName
y CommandArgument
. A continuación, se puede acceder a ellos en CommandEventArgs
.
Es útil en lugares donde desea asignar el mismo método a varios botones y usar los parámetros CommandName
y CommandArgument
para indicar qué funcionalidad hará clic en ese botón.