Domanda

Ho visto del codice in cui le persone passano i parametri tramite commandParameter Proprietà del controllo web. Quindi a che cosa serve Eventargs.

È stato utile?

Soluzione

Questo può essere utile se hai lo stesso metodo EventHandler per pulsanti diversi. Ad esempio, supponiamo che il tuo markup sia simile al seguente:

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

Puoi avere lo stesso gestore di eventi per entrambi i pulsanti e differenziare in base al 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-passaggio-parametri-a-button-click-handler

Altri suggerimenti

Diversi controlli del tipo di pulsante in .NET hanno un evento OnCommand e un evento OnClick . Quando si utilizza l'evento OnCommand si hanno parametri aggiuntivi che è possibile applicare al pulsante come CommandName e CommandArgument . Questi sono quindi accessibili in CommandEventArgs .

È utile nei punti in cui si desidera assegnare lo stesso metodo a più pulsanti e utilizzare i parametri CommandName e CommandArgument per indicare quale funzionalità facendo clic su quel pulsante.

La classe EventArgs è una classe base. Altri metodi web utilizzano altri argomenti Event.

es. un LinkButton ha un evento OnClick con un parametro EventArgs predefinito, ma ha anche un evento OnCommand che accetta un parametro CommandEventArgs: EventArgs che contiene alcune informazioni extra (ovvero CommandName & amp; CommandArgument).

L'evento sostiene che la classe base è proprio lì come segnaposto in modo che tutti gli EventHandlers si conformino a una firma simile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top