Gewusst wie: Verbinden mehrerer Ereignisse mit einem einzelnen Ereignishandler in ASP.NET-Webseiten
Aktualisiert: November 2007
Wenn Sie bereits über einen Ereignishandler verfügen, können Sie mehrere Steuerelementereignisse an diesen Handler binden. Diese Ereignisse können von demselben Steuerelement stammen, oder ein Ereignis kann von verschiedenen Steuerelementen stammen, solange alle Ereignisse dieselbe Methodensignatur aufweisen. Sie können beispielsweise die Click-Ereignisse von mehreren Button-Serversteuerelementen auf einer ASP.NET-Seite an einen einzelnen Ereignishandler binden. Wenn der Handler aufgerufen wurde, können Sie ermitteln, welches Steuerelement das Ereignis ausgelöst hat.
So verbinden Sie mehrere Ereignisse mit einem einzigen Ereignishandler
Fügen Sie im Seitenmarkup jedem Steuerelement den gleichen Ereignisnamen und Methodennamen hinzu, wie im folgenden Codebeispiel veranschaulicht.
<asp:Button ID="Button1" onclick="Button_Click" Text="Button1" /> <br /> <asp:Button ID="Button2" onclick="Button_Click" Text="Button2" />
Hinweis: Sie müssen sicherstellen, dass die Methode die richtige Signatur für das Ereignis aufweist, das sie behandelt.
So verbinden Sie in Visual Basic mehrere Ereignisse mit einem einzigen Ereignishandler
Ändern Sie die Handles-Klausel einer Methode, indem Sie die Namen der Ereignisse hinzufügen, die von der Methode behandelt werden sollen. Trennen Sie aufeinander folgende Ereignisnamen mit Kommas.
Im folgenden Codebeispiel wird veranschaulicht, wie die Button_Click-Methode an Ereignisse gebunden wird, die von drei Button-Steuerelementen ausgelöst werden.
Sub Button_Click (ByVal sender as System.Object, _ ByVal e as System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click
Hinweis: Wenn Sie ein Ereignis mithilfe einer Handles-Klausel an eine Methode binden, schließen Sie nicht auch das Ereignisattribut im Markup ein. Schließen Sie beispielsweise kein onClick-Attribut im Markup für ein Button-Steuerelement ein. Andernfalls wird die Methode zweimal aufgerufen.
So ermitteln Sie, welches Steuerelement das Ereignis ausgelöst hat
Deklarieren Sie im Ereignishandler eine Variable, deren Typ mit dem Steuerelement übereinstimmt, das das Ereignis auslöst.
Weisen Sie der Variablen das erste Argument des Ereignishandlers zu, indem Sie es in den entsprechenden Typ umwandeln.
Im folgenden Codebeispiel wird der Handler für das Click-Ereignis eines Button-Steuerelements veranschaulicht, das von mehreren unterschiedlichen Schaltflächen aufgerufen wird. Der Handler zeigt die ID-Eigenschaft der Schaltfläche an, die das Ereignis ausgelöst hat.
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; }