A pagina 84 del Self-Paced Training Kit dell'esame 70-528 di parla dell'oggetto Button (System.Web.UI.WebControls.Button). In particolare, si dice che un pulsante può essere un tradizionale submit button (che è l'impostazione di default), oppure un pulsante di comando. Per creare un Button di quest'ultimo tipo, è necessario impostare le sue proprietà CommandName e CommandArgument. Tuttavia, nel testo manca un passaggio fondamentale: dopo aver settato questa proprietà, si deve gestire l'evento Command e usare le proprietà dell'oggetto CommandEventArgs per sapere qual è il comando da eseguire ed, eventualmente, gli argomenti ad esso associati. Ad esempio, supponiamo che nella pagina ASPX siano stati definiti 3 pulsanti:
<asp:Button ID="Button1" runat="server" Text="Primo pulsante"
CommandName="Primo" />
<asp:Button ID="Button2" runat="server" Text="Secondo pulsante"
CommandName="Secondo" />
<asp:Button ID="Button3" runat="server" Text="Terzo pulsante"
CommandName="Terzo" />
A questo punto si possono registrare gli eventi OnCommand di tutti e 3 i pulsanti sullo stesso metodo Button_Command:
<asp:Button ID="Button1" runat="server" Text="Primo pulsante"
CommandName="Primo" OnCommand="Button_Command" />
<asp:Button ID="Button2" runat="server" Text="Secondo pulsante"
CommandName="Secondo" OnCommand="Button_Command" />
<asp:Button ID="Button3" runat="server" Text="Terzo pulsante"
CommandName="Terzo" OnCommand="Button_Command" />
Infine, nel code-behind della pagina si utilizza la proprietà CommandEventArgs.CommandName per sapere quale pulsante è stato effettivamente premuto:
protected void Button_Command(object sender, CommandEventArgs e)
{
Response.Write("Pulsante premuto: " + e.CommandName);
}
Lo stesso principio di funzionamento vale anche per l'oggetto ImageButton.