2009-05-06 44 views
21

he visto un código en el que las personas pasan el parámetro a través de commandParameter Property of web control.then lo que es el uso de eventargs.asp.net: cómo usar eventargs para el paso de parámetros en el botón onclick?

+0

Posible duplicado de [¿Puede alguien explicarme en términos más sencillos cómo usar EventArgs?] (Http://stackoverflow.com/questions/1778952/can-someone-please-explain-to-me-in -the-most-layman-terms-how-to-use-eventargs) – Toadfish

Respuesta

50

Esto puede ser útil si tiene el mismo método EventHandler para botones diferentes. Ejemplo, digamos que su margen de beneficio 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" /> 

Usted puede tener el mismo controlador de eventos para los dos botones y diferenciar en base a la 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; 
      } 
} 

Fuente:aspnet-passing-parameters-in-button-click-handler

+0

link ya no funciona – madman2890

+0

Supongo que no entiendo por qué una llamada a función normal no funcionaría. Puedo invocar una función con argumentos vacíos, puedo invocar una función y pasarle una variable, pero no puedo decir "myfunction (\" option1 \ ")" – JFA

5

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 en el CommandEventArgs.

Es útil en lugares donde desea asignar el mismo método a varios botones y usa los parámetros CommandName y CommandArgument para indicar qué funcionalidad hará clic en ese botón.

5

El EventArgs clase es una clase base. Otros métodos web usan otros eventos args.

p. Ej. 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 algo de información adicional (a saber, CommandName & CommandArgument).

La clase base de eventos args está ahí como un marcador de posición para que todos los manejadores de sucesos se ajusten a una firma similar.

Cuestiones relacionadas