Gewusst wie: Verarbeiten von Ereignissen in einer Web Forms-Anwendung
Aktualisiert: November 2007
In Web Forms-Anwendungen wird häufig eine Webseite mit Steuerelementen gefüllt und dann basierend auf dem Steuerelement, auf das der Benutzer klickt, ein bestimmter Vorgang ausgelöst. So löst z. B. ein System.Web.UI.WebControls.Button-Steuerelement ein Ereignis aus, wenn der Benutzer in der Webseite darauf klickt. Indem sie das Ereignis behandelt, kann die Anwendung die dem Klicken auf die Schaltfläche entsprechende Anwendungslogik ausführen.
Informationen zum Web Forms-Programmiermodell finden Sie unter Programmieren von Web Forms.
So behandeln Sie ein Click-Ereignis für eine Schaltfläche auf einer Webseite
Erstellen Sie eine Web Forms-Seite (ASP.NET-Seite) mit einem Button-Steuerelement.
<asp:Button id = "Button" Text = "Click Me" runat = server/>
Definieren Sie einen Ereignishandler, der der Signatur des Delegaten für das Click-Ereignis entspricht. Das Click-Ereignis verwendet die EventHandler-Klasse für den Delegattyp und die EventArgs-Klasse für die Ereignisdaten.
void Button_Click(object sender, EventArgs e) {...}
Sub Button_Click(sender As Object, e As EventArgs) ... End Sub
Legen Sie das OnClick-Attribut im Button-Element auf die Ereignishandlermethode fest.
<asp:Button id = "Button" OnClick = "Button_Click" Text = "Click Me" runat = server/>
Hinweis: Ein Entwickler einer Web Forms-Anwendung kann das Ereignis, wie dargestellt, deklarativ verknüpfen, ohne den Delegaten direkt zu bearbeiten. Das ASP.NET-Seitenframework generiert Code, der eine Instanz von EventHandler erstellt, die auf Button_Click verweist, und diese Delegatinstanz dem Click-Ereignis der Button-Instanz hinzufügt.
Beispiel
Die folgende Web Forms-Seite behandelt das Click-Ereignis von Button, um die Hintergrundfarbe von TextBox zu ändern. Die in diesem Beispiel fett dargestellten Elemente zeigen den Ereignishandlercode und veranschaulichen, wie der Ereignishandler mit dem Click-Ereignis von Button verknüpft wird.
Sicherheitshinweis: |
---|
Dieses Beispiel enthält ein Textfeld, das eine Benutzereingabe akzeptiert. Diese stellt ein potenzielles Sicherheitsrisiko dar. Standardmäßig stellt die ASP.NET-Seite sicher, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe. |
[C#]
<html>
<script language="C#" runat=server>
private void Button_Click(object sender, EventArgs e){ Box.BackColor = System.Drawing.Color.LightGreen; }
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
<html>
<script language="VB" runat=server>
Private Sub Button_Click(sender As Object, e As EventArgs) Box.BackColor = System.Drawing.Color.LightGreen
End Sub
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
Kompilieren des Codes
Wenn Sie ausprobieren möchten, wie die Ereignisbehandlung in Web Forms funktioniert, speichern Sie die Beispielseite in einer Datei mit der Erweiterung .aspx (diese kennzeichnet die Datei als ASP.NET-Seite), und stellen Sie sie im virtuellen Stammverzeichnis von IIS bereit.