Freigeben über


Gewusst wie: Erstellen von Ereignishandlern für ASP.NET-Webseiten (Visual Studio)

Aktualisiert: November 2007

Wenn Sie eine ASP.NET-Webseite in Visual Studio bearbeiten, gibt es mehrere verschiedene Möglichkeiten, Serverereignishandler für Steuerelemente und für die Seite zu erstellen. Diese hängen teilweise von der Programmiersprache ab, die Sie verwenden. Sie können bei der Erstellung von Handlern auf die Funktionen von Visual Web Developer zurückgreifen, Sie können die Handler aber auch deklarativ oder im Code erstellen.

Hinweis:

Sie können auch Ereignisse für Clientskript hinzufügen. Diese Ereignisse werden ausgeführt, wenn das Steuerelement als Element der Seite im Browser ausgeführt wird. Ausführliche Informationen finden Sie unter Gewusst wie: Hinzufügen von Clientskriptereignissen zu ASP.NET-Webserversteuerelementen.

Wenn ein Steuerelement mehr als ein Ereignis unterstützt, wird das Element normalerweise so konfiguriert, dass ein Ereignis als das Standardereignis festgelegt wird. Für das Button-Steuerelement ist beispielsweise das Click-Ereignis das Standardereignis.

Erstellen von Ereignishandlern in Visual Web Developer

So erstellen Sie einen Ereignishandler für das Standardereignis

  • Doppelklicken Sie in der Entwurfsansicht auf die Seite oder auf das Steuerelement, für das Sie einen Standardereignishandler erstellen möchten.

    Visual Web Developer erstellt einen Handler für das Standardereignis und öffnet den Code-Editor mit der Einfügemarke im Ereignishandler.

So erstellen Sie einen Ereignishandler im Eigenschaftenfenster

  1. Wählen Sie in der Entwurfsansicht das Steuerelement aus, für das der Ereignishandler erstellt werden soll.

    Hinweis:

    Sie können die Seite nicht in der Entwurfsansicht auswählen. Deshalb können Sie mit dieser Prozedur kein Ereignis auf Seitenebene erstellen. Verwenden Sie stattdessen die vorherige Prozedur.

  2. Klicken Sie in Eigenschaften auf das Ereignissymbol .

    Das Eigenschaftenfenster zeigt eine Liste mit Ereignissen für das ausgewählte Steuerelement an.

  3. In dem Feld neben einem Ereignisnamen sollten Sie eine der folgenden Optionen ausführen:

    • Doppelklicken, um einen neuen Ereignishandler für dieses Ereignis zu erstellen. Der Designer benennt den Handler gemäß der Konvention Steuerelement-ID_Ereignis.

    • Den Namen des Handlers eingeben, der erstellt werden soll.

    • Aus der Dropdownliste den Namen eines vorhandenen Handlers auswählen.

      Die Dropdownliste zeigt eine Liste der Methoden an, die über die korrekte Signatur für das Ereignis verfügen.

    Wenn Sie fertig sind, wechselt Visual Web Developer in den Code-Editor und setzt die Einfügemarke in den Handler.

So erstellen Sie im Code-Editor einen Ereignishandler

  1. Wechseln Sie in den Code-Editor. Gehen Sie dabei wie folgt vor:

    • Wechseln Sie für eine Einzeldateiwebseite in die Quellansicht.

    • Für eine Code-Behind-Seite klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Namen der Seite, und klicken Sie dann auf Code anzeigen.

      Hinweis:

      In Code-Behind-Seiten, die C# verwenden, funktioniert diese Technik nicht, weil im letzten Schritt der Steuerelementname nicht in der Dropdownliste angezeigt wird. Verwenden Sie stattdessen eine der anderen Vorgehensweisen.

  2. Wählen Sie im Code-Editor-Fenster aus der Dropdownliste oben links das Steuerelement und aus der rechten Dropdownliste das Ereignis aus.

    Hinweis:

    Ereignisse, für die es bereits Methoden gibt, werden fett formatiert angezeigt.

Deklaratives Erstellen der Ereignishandler

Wenn Sie Visual Web Developer verwenden, um einen Ereignishandler zu erstellen, erstellt Visual Web Developer das Skelett des Handlers und konfiguriert das Steuerelement so, dass es den Handler aufruft. Sie können das Gleiche auch ohne Visual Web Developer durchführen.

So erstellen Sie einen Handler für Seitenereignisse

  • Erstellen Sie im Code-Editor eine Methode mit dem Namen Seite_Ereignis.

    Zum Erstellen eines Handlers für das Load-Ereignis der Seite erstellen Sie beispielsweise die Methode Page_Load.

    Hinweis:

    Anders als andere Ereignishandler benötigen Seitenereignishandler keine Parameter.

    ASP.NET-Seiten binden automatisch Seitenereignisse an Methoden mit dem Namen Seite_Ereignis. Diese automatische Bindung wird in der @ Page-Direktive durch das AutoEventWireup-Attribut konfiguriert, das standardmäßig auf true festgelegt ist. Wenn Sie AutoEventWireup auf false festlegen, sucht die Seite nicht automatisch nach Methoden, die die Namenskonvention Seite_Ereignis verwenden.

    Das folgende Codebeispiel zeigt einen Handler für das Load-Ereignis der Seite.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack Then
            Response.Write("<br>Page has been posted back.")
        End If
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            Response.Write("<br>Page has been posted back.");
        }
    }
    

So fügen Sie deklarativ einen Handler für ein Steuerelement hinzu

  1. Erstellen Sie im Code-Editor eine Ereignisbehandlungsmethode mit der entsprechenden Signatur.

    Sie können der Methode einen beliebigen Namen geben.

  2. Verwenden Sie im Markup des Steuerelements die Attribute mit dem Namen On<Ereignisname>, um den Ereignishandler zu binden. Verwenden Sie den Methodennamen des Ereignishandlers als Wert.

    Das folgende Codebeispiel zeigt das Markup für ein TextBox-Steuerelement, bei dem das TextChanged-Ereignis an die Ereignishandlermethode mit dem Namen NameChange gebunden ist:

    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.

    Protected Sub NameChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged
        'Sub for the OnTextChanged event
    End Sub
    
    <asp:TextBox ID="textbox1" Runat="server" 
    Text="" 
    OnTextChanged="NameChange" />
    
  3. Fügen Sie zum Code die Ereignismethode hinzu. Das folgende Codebeispiel zeigt den Code für die Ereignishandlermethode mit dem Namen NameChange:

    protected void NameChange(object sender, EventArgs e)
    {
        //Method for the OnTextChanged event.
    }
    

So fügen Sie in Visual Basic implizit einen Ereignishandler hinzu

  1. Erstellen Sie im Code-Editor eine Ereignisbehandlungsmethode mit der entsprechenden Signatur.

    Sie können der Methode einen beliebigen Namen geben.

  2. Verwenden Sie zum Angeben des Steuerelements und des Ereignisses, an das die Methode gebunden werden soll, das Handles-Schlüsselwort.

    Das folgende Codebeispiel zeigt einen Ereignishandler für das Click-Ereignis einer Schaltfläche mit dem Namen SampleButton. Die Methode im Beispiel heißt Clicked.

    Protected Sub SampleButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles SampleButton.Click
        ' Code goes here.
    End Sub
    
    Hinweis:

    Wenn Sie das Handles-Schlüsselwort verwenden, dürfen Sie in das Steuerelementmarkup kein Ereignisattribut einfügen. Andernfalls wird der Handler zweimal aufgerufen.

  3. Falls die Methode mehrere Ereignisse behandelt, fügen Sie der Handles-Klausel die durch Kommas getrennten Namen der zusätzlichen Ereignisse hinzu.

    Das folgende Codebeispiel zeigt eine Methode, die das Click-Ereignis für mehrere Schaltflächen behandelt. Der Code im Handler bestimmt durch Prüfen des Absenderarguments, auf welche Schaltfläche geklickt wurde.

    Protected Sub AnyClicked(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click, Button3.Click
        Dim b As Button = CType(sender, Button)
        Response.Write("You clicked the button labeled " & b.ID)
    End Sub
    

Siehe auch

Aufgaben

Gewusst wie: Dynamisches Binden von Ereignishandlern zur Laufzeit in ASP.NET-Webseiten

Konzepte

Übersicht über ASP.NET-Webserversteuerelemente

Weitere Ressourcen

Behandeln und Auslösen von Ereignissen

Serverereignisbehandlung auf ASP.NET-Webseiten