Freigeben über


PagesSection.AutoEventWireup Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob Ereignisse für ASP.NET-Seiten automatisch mit Ereignisbehandlungsfunktionen verbunden werden.

public:
 property bool AutoEventWireup { bool get(); void set(bool value); };
[System.Configuration.ConfigurationProperty("autoEventWireup", DefaultValue=true)]
public bool AutoEventWireup { get; set; }
[<System.Configuration.ConfigurationProperty("autoEventWireup", DefaultValue=true)>]
member this.AutoEventWireup : bool with get, set
Public Property AutoEventWireup As Boolean

Eigenschaftswert

true, wenn Ereignisse für ASP.NET-Seiten automatisch mit Ereignisbehandlungsfunktionen verbunden werden, andernfalls false. Der Standardwert ist true.

Attribute

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die AutoEventWireup Eigenschaft im Code festgelegt oder gelesen wird.

// Get the current AutoEventWireup property value.
Console.WriteLine(
    "Current AutoEventWireup value: '{0}'",
    pagesSection.AutoEventWireup);

// Set the AutoEventWireup property to false.
pagesSection.AutoEventWireup = false;
' Get the current AutoEventWireup property value.
Console.WriteLine( _
    "Current AutoEventWireup value: '{0}'", _
    pagesSection.AutoEventWireup)

' Set the AutoEventWireup property to false.
pagesSection.AutoEventWireup = False

Das folgende Beispiel zeigt die beiden Arten von Methodensignaturen, die automatisch an Seitenereignisse angefügt werden, wenn AutoEventWireup ist true.

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>
// This method will be automatically bound to the Load event
// when AutoEventWireup is true.
protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Hello world");
}
// This method will be automatically bound to the Load event 
// when AutoEventWireup is true only if no overload having 
// object and EventArgs parameters is found.
protected void Page_Load()
{
    Response.Write("Hello world");
}
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
' This method will be automatically bound to the Load event
' when AutoEventWireup is true.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Response.Write("Hello world")
End Sub
' This method will be automatically bound to the Load event 
' when AutoEventWireup is true only if no overload having 
' object and EventArgs parameters is found.    
Protected Sub Page_Load()
    Response.Write("Hello world")
End Sub

Das folgende Beispiel zeigt, wie Ereignisse explizit verdrahten werden, wenn AutoEventWireup ist false.

// Following are three alternative ways of binding an event
// handler to an event when AutoEventWireup is false.  For
// any given event do this binding only once or the handler
// will be called multiple times.

// You can wire up events in the page's constructor.
public _Default()
{
    Load += new EventHandler(Page_Load);
}

// You can override the OnInit event and wire up events there.
protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    Load += new EventHandler(Page_Load);
}

// Or you can override the event's OnEventname method and
// call your handler from there.  You can also put the code
// execute when the event fires within the override method itself.
protected override void OnLoad(EventArgs e)
{
    Page_Load(null, null);
    base.OnLoad(e);
}

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Hello world");
}
' The Handles keyword binds Page_Load to the Load event.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Response.Write("Hello world")
End Sub

Hinweise

Wenn AutoEventWireup ist true, erfordert ASP.NET nicht, dass Sie Ereignishandler explizit an ein Seitenereignis wie Loadbinden.

Wenn AutoEventWireup ist false, müssen Sie das Ereignis explizit an eine -Methode binden. Wenn Sie beispielsweise eine Page_Load Methode im Code für eine Seite haben, wird die Methode als Antwort auf das Load Ereignis nur aufgerufen, wenn Sie code wie im folgenden Beispiel schreiben (beachten Sie die Handles Anweisung in Visual Basic und den Ereignishandlercode in C#):

Partial Class AutoEventWireupExample
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, _
            ByVal e As System.EventArgs) Handles Me.Load
        Response.Write("Executing Page_Load")
    End Sub
End Class
public partial class AutoEventWireupExample : System.Web.UI.Page
{
    protected void Page_Load(object sender, System.EventArgs e)
    {
        Response.Write("Executing Page_Load");
    }
    override protected void OnInit(EventArgs e)
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }
}

Wenn AutoEventWireup ist true, werden Handler automatisch zur Laufzeit basierend auf ihrem Namen und ihrer Signatur an Ereignisse gebunden. Für jedes Ereignis sucht ASP.NET nach einer Methode, die gemäß dem MusterereignisnamenPage_ benannt ist, zPage_Load. B. oder Page_Init. ASP.NET sucht zuerst nach einer Überladung, die über die typische Ereignishandlersignatur verfügt (d. a. es werden Parameter und EventArgs angegebenObject). Wenn kein Ereignishandler mit dieser Signatur gefunden wird, sucht ASP.NET nach einer Überladung ohne Parameter.

Wenn AutoEventWireup ist false, müssen Sie Ereignishandler explizit an Ereignisse binden, wie im vorherigen Beispiel gezeigt. In diesem Fall müssen die Methodennamen nicht einem Muster folgen.

Der Standardwert ist true , wenn AutoEventWireup in der @ Page -Direktive nicht angegeben ist. Visual Studio schließt das Attribut automatisch ein, wenn CodeBehind-Dateien erstellt werden. Für ASP.NET in C# geschriebenen Seiten legt Visual Studio den Wert auf fest true. Für Visual Basic legt Visual Studio den Wert auf false fest, da Handler an Ereignisse gebunden sind, indem die Handles Schlüsselwort (keyword) verwendet werden, die von Visual Studio automatisch eingefügt wird, wenn ein Ereignishandler generiert wird. Wenn Sie auf truefestlegenAutoEventWireup, können Sie die Handles Schlüsselwort (keyword) weglassen (oder entfernen).

Legen Sie nicht auf true festAutoEventWireup, wenn die Leistung ein wichtiger Aspekt ist. Wenn die automatische Ereignis wireup aktiviert ist, müssen ASP.NET zwischen 15 und 30 Versuche ausführen, um Ereignisse mit Methoden abzugleichen.

Beachten Sie Folgendes zum Binden von Ereignishandlern an Ereignisse:

  • Wenn Sie auf truefestlegenAutoEventWireup, stellen Sie sicher, dass Sie seitenereignishandler nicht auch manuell an Ereignisse anfügen. Wenn Sie dies tun, werden Handler möglicherweise mehrmals aufgerufen.

  • Die automatische Bindung wird nur für Seitenereignisse ausgeführt, nicht für Ereignisse für Steuerelemente auf der Seite.

  • Alternativ zum Binden von Ereignissen an Handler können Sie die Oneventname-Methoden der Seite oder von Steuerelementen überschreiben.

Gilt für: