Condividi tramite


Procedura: connettere più eventi a un unico gestore eventi nelle pagine Web ASP.NET

Aggiornamento: novembre 2007

Se già si dispone di un gestore eventi, sarà possibile associarvi più eventi del controllo. Gli eventi possono appartenere allo stesso controllo o anche a controlli diversi, purché abbiano la stessa firma di metodo. È ad esempio possibile associare gli eventi Click di diversi controlli server Button di una pagina ASP.NET a un unico gestore eventi. Una volta chiamato il gestore, sarà possibile determinare in quale controllo si è verificato l'evento.

Per connettere più eventi a un unico gestore eventi

  • Nel codice della pagina aggiungere lo stesso nome di evento e nome di metodo a ogni controllo, come illustrato nell'esempio di codice riportato di seguito.

    <asp:Button ID="Button1" onclick="Button_Click"  
      Text="Button1" /> 
    <br />
    <asp:Button ID="Button2" onclick="Button_Click" 
      Text="Button2" />
    
    Nota:

    È necessario accertarsi che la firma del metodo sia corretta per l'evento gestito.

Per connettere più eventi a un unico gestore eventi in Visual Basic

  • Modificare la clausola Handles di un metodo aggiungendo i nomi degli eventi che il metodo dovrà gestire. Separare i nomi degli eventi con virgole.

    Nell'esempio di codice riportato di seguito viene illustrato come associare il metodo Button_Click agli eventi generati dai tre controlli Button.

    Sub Button_Click (ByVal sender as System.Object, _
        ByVal e as System.EventArgs) _
        Handles Button1.Click, Button2.Click, Button3.Click
    
    Nota:

    Se si utilizza una clausola Handles per associare un evento e un metodo, non inserire anche l'attributo dell'evento nel codice. Ad esempio, non includere un attributo onClick nel codice per un controllo Button, altrimenti il metodo verrà chiamato due volte.

Per determinare in quale controllo è stato generato l'evento

  1. Nel gestore di evento, dichiarare una variabile il cui tipo corrisponda a quello del controllo che ha generato l'evento.

  2. Assegnare alla variabile il primo argomento del gestore eventi, eseguendone il cast nel tipo appropriato.

    Nell'esempio di codice riportato di seguito viene illustrato un gestore dell'evento Click di un controllo Button che viene chiamato da diversi pulsanti. Il gestore visualizza la proprietà ID del pulsante che ha generato l'evento.

    Private Sub Button_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles Button1.Click, Button2.Click, Button3.Click
            Dim b As Button = CType(sender, Button)
            Label1.Text = b.ID
    End Sub
    
    private void Button_Click(object sender, System.EventArgs e)
        {
            Button b = (Button) sender;
            Label1.Text = b.ID;
        }
    

Vedere anche

Altre risorse

Gestione di eventi server in pagine Web ASP.NET