Pregunta

He visto algún código en el que las personas pasan parámetros a través de la propiedad commandParameter del control web. Entonces, ¿para qué sirve eventargs?

¿Fue útil?

Solución

Esto puede ser útil si tiene el mismo método EventHandler para diferentes botones. Ejemplo, digamos que su 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 el Nombre del comando:

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-pasando-parámetros-en-botón-click-handler

Otros consejos

Varios controles de tipo de botón en .NET tienen un evento OnCommand , así como un evento OnClick . Cuando utilice el evento OnCommand , tiene parámetros adicionales que puede aplicar al Botón, como CommandName y CommandArgument . Luego se puede acceder a ellos en el 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 producirá hacer clic en ese botón.

La clase EventArgs es una clase base. Otros métodos web usan otros argumentos de eventos.

p. un LinkButton tiene un evento OnClick con un parámetro predeterminado EventArgs, pero también tiene un evento OnCommand que toma un parámetro CommandEventArgs: EventArgs que tiene información adicional (es decir, CommandName & amp; CommandArgument).

La clase base de argumentos de evento está ahí como un marcador de posición para que todos los EventHandlers se ajusten a una firma similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top