asp.net: comment utiliser eventargs pour la transmission de paramètres sur un bouton onclick?
-
06-07-2019 - |
Question
J'ai vu un code dans lequel des personnes transmettent un paramètre via commandParameter, propriété de Web control.then, quelle est l'utilisation de eventargs.
La solution
Cela peut être utile si vous utilisez 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 utiliser le même gestionnaire d'événements pour les deux boutons et différencier en fonction du nom de commande:
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: Paramètres de passage d'aspnet dans le gestionnaire de clics de bouton
Autres conseils
Divers contrôles de type Button dans .NET ont un événement OnCommand
ainsi qu'un événement OnClick
. Lorsque vous utilisez l'événement OnCommand
, vous disposez de paramètres supplémentaires que vous pouvez appliquer au bouton, tels que NomCommande
et CommandArgument
. Celles-ci sont ensuite accessibles dans CommandEventArgs
.
Il est utile dans les endroits où vous souhaitez attribuer la même méthode à plusieurs boutons et utiliser les paramètres NomCommande
et CommandArgument
pour indiquer la fonctionnalité que ce bouton produira.
La classe EventArgs
est une classe de base. D'autres méthodes Web utilisent d'autres arguments Event.
par exemple. un LinkButton a un événement OnClick avec un paramètre EventArgs par défaut, mais également un événement OnCommand qui prend un paramètre CommandEventArgs: EventArgs
qui contient des informations supplémentaires (à savoir CommandName & amp; CommandArgument).
La classe de base des arguments d'événement est présente uniquement en tant qu'espace réservé afin que tous les gestionnaires d'événements se conforment à une signature similaire.