PagesSection.AutoEventWireup Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Ereignisse für ASP.NET Seiten automatisch mit Ereignisbehandlungsfunktionen verbunden sind.
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
truewenn Ereignisse für ASP.NET Seiten automatisch mit Ereignisbehandlungsfunktionen verbunden sind; andernfalls . false Der Standardwert lautet true.
- Attribute
Beispiele
Das folgende Codebeispiel zeigt, 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 Formen von Methodensignaturen, die bei Bedarf AutoEventWireuptrueautomatisch an Seitenereignisse angefügt werden.
<%@ 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 verkabelt werden, wenn AutoEventWireup dies der Zeitpunkt 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 dies der Fall ist true, erfordert ASP.NET nicht, dass Sie Ereignishandler explizit an ein Seitenereignis binden, z Load. B. .
Ist AutoEventWireup dies falseder Fall, müssen Sie das Ereignis explizit an eine Methode binden. Wenn Sie beispielsweise über eine Page_Load Methode im Code für eine Seite verfügen, wird die Methode als Reaktion 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);
}
}
Ist AutoEventWireup dies trueder Zeitpunkt, werden Handler automatisch basierend auf ihrem Namen und der Signatur an Ereignisse zur Laufzeit 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 überprüft zuerst auf eine Überladung mit der typischen Ereignishandlersignatur (d. h. sie gibt Object und EventArgs Parameter an). Wenn ein Ereignishandler mit dieser Signatur nicht gefunden wird, sucht ASP.NET nach einer Überladung, die keine Parameter enthält.
Wenn AutoEventWireup dies der Fall ist false, müssen Sie Ereignishandler explizit an Ereignisse binden, wie im vorherigen Beispiel gezeigt. In diesem Fall müssen die Methodennamen kein Muster befolgen.
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 true. Für Visual Basic legt Visual Studio den Wert false fest, da Handler mithilfe des Handles-Schlüsselworts an Ereignisse gebunden sind, das automatisch von Visual Studio eingefügt wird, wenn ein Ereignishandler generiert wird. Wenn Sie diesen trueWert festlegenAutoEventWireup, können Sie das Handles-Schlüsselwort weglassen (oder entfernen).
Legen Sie nicht fest AutoEventWireup , true ob die Leistung eine wichtige Berücksichtigung ist. Wenn die automatische Ereignis-Verdrahtung aktiviert ist, muss ASP.NET zwischen 15 und 30 versuchen, Ereignisse mit Methoden abzugleichen.
Beachten Sie Folgendes zum Binden von Ereignishandlern an Ereignisse:
Wenn Sie diese Einstellung
truefestlegenAutoEventWireup, stellen Sie sicher, dass Sie auch keine Seitenereignishandler manuell an Ereignisse anfügen. Wenn Sie dies tun, werden Handler möglicherweise mehrmals aufgerufen.Automatische Bindung wird nur für Seitenereignisse und nicht für Ereignisse für Steuerelemente auf der Seite ausgeführt.
Als Alternative zum Binden von Ereignissen an Handler können Sie die
OnEreignisnamenmethoden der Seite oder der Steuerelemente überschreiben.