Pergunta

i ter visto algum código em que as pessoas passam parâmetro através CommandParameter Propriedade de control.then web o que é o uso de EventArgs.

Foi útil?

Solução

Isto pode ser útil se você tiver o mesmo método EventHandler para diferentes botões. Exemplo, digamos que a sua aparência de marcação como este:

<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
   CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
   CommandName="ThatBtnClick" OnClick="MyBtnHandler" />

Você pode ter o mesmo manipulador de eventos para os dois botões e diferenciar com base na 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;
           }
}

Fonte: aspnet-passando-parâmetros-in-botão-clique com o manipulador

Outras dicas

Vários controles tipo botão em .NET tem um evento OnCommand, bem como um evento OnClick. Ao usar o evento OnCommand você tem parâmetros adicionais que você pode aplicar para o botão, como CommandName e CommandArgument. Estes podem então ser acessado no CommandEventArgs.

É útil em lugares onde você deseja atribuir o mesmo método para vários botões e usar os parâmetros CommandName e CommandArgument para indicar o que clicar funcionalidade que o botão irá produzir.

A classe EventArgs é uma classe base. Outros métodos da web usar outros argumentos do evento.

por exemplo. um LinkButton tem um evento OnClick com um parâmetro EventArgs padrão, mas também tem um evento OnCommand que leva um parâmetro CommandEventArgs : EventArgs que tem alguma informação extra (ou seja CommandName & CommandArgument).

A classe base args evento está ali apenas como um espaço reservado para que todos os EventHandlers estar de acordo com uma assinatura similar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top