2009-05-06 8 views
21

J'ai vu du code dans lequel les gens passent un paramètre à travers la propriété commandParameter du contrôle web. Alors à quoi sert eventargs.asp.net: comment utiliser eventargs pour le passage de paramètre sur le bouton onclick?

+0

Possible copie de [Quelqu'un peut-il m'expliquer dans les termes les plus simples comment utiliser EventArgs?] (Http://stackoverflow.com/questions/1778952/can-someone-please-explain-to-me-in -the-most-layman-termes-how-to-use-eventargs) – Toadfish

Répondre

50

Cela peut être utile si vous avez la même méthode EventHandler pour différents boutons. Exemple, supposons que votre balisage ressemble à ceci:

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

Vous pouvez avoir le même gestionnaire d'événements pour les deux boutons et de se différencier en fonction de 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; 
      } 
} 

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

+0

le lien ne fonctionne plus – madman2890

+0

Je suppose que je ne comprends pas pourquoi un appel de fonction régulière ne fonctionnerait pas. Je peux appeler une fonction avec des arguments vides, je peux appeler une fonction et lui passer une variable, mais je ne peux pas dire "myfunction (\" option1 \ ")" – JFA

5

Diverses commandes de type bouton dans .NET ont un événement OnCommand ainsi qu'un événement OnClick. Lorsque vous utilisez l'événement OnCommand, vous avez des paramètres supplémentaires que vous pouvez appliquer au bouton tels que CommandName et CommandArgument. Ceux-ci peuvent ensuite être consultés dans le CommandEventArgs.

Il est utile dans les endroits où vous souhaitez affecter la même méthode à plusieurs boutons et utiliser les paramètres CommandName et CommandArgument pour indiquer la fonctionnalité qui va produire ce bouton.

5

Le EventArgs class est une classe de base. D'autres méthodes Web utilisent d'autres arguments d'événement.

par exemple. un LinkButton a un événement OnClick avec un paramètre EventArgs par défaut, mais il a également un événement OnCommand qui prend un paramètre CommandEventArgs : EventArgs qui contient des informations supplémentaires (à savoir CommandName & CommandArgument).

La classe de base args d'événement est juste là comme un espace réservé de sorte que tous les EventHandlers se conforment à une signature similaire.

Questions connexes