PagesSection.AutoEventWireup Egenskap

Definition

Hämtar eller anger ett värde som anger om händelser för ASP.NET sidor automatiskt ansluts till händelsehanteringsfunktioner.

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

Egenskapsvärde

true om händelser för ASP.NET sidor automatiskt ansluts till händelsehanteringsfunktioner, annars false. Standardvärdet är true.

Attribut

Exempel

I följande kodexempel visas hur du anger eller läser egenskapen AutoEventWireup i kod.

// 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

I följande exempel visas de två formerna av metodsignaturer som automatiskt kopplas till sidhändelser när AutoEventWireup är 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

I följande exempel visas hur du uttryckligen kopplar upp händelser när AutoEventWireup är 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

Kommentarer

När AutoEventWireup är true kräver ASP.NET inte att du uttryckligen binder händelsehanterare till en sidhändelse, till exempel Load.

När AutoEventWireup är falsemåste du uttryckligen binda händelsen till en metod. Om du till exempel har en Page_Load-metod i koden för en sida anropas metoden som svar på händelsen Load endast om du skriver kod som den i följande exempel (observera instruktionen Handles i Visual Basic och händelsehanterarkoden i 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);
    }
}

När AutoEventWireup är true, är hanterare automatiskt bundna till händelser vid körning baserat på deras namn och signatur. För varje händelse söker ASP.NET efter en metod som heter enligt mönstret Page_eventname, till exempel Page_Load eller Page_Init. ASP.NET söker först efter en överlagring som har den typiska händelsehanterarsignaturen (dvs. anger den parametrarna Object och EventArgs). Om en händelsehanterare med den här signaturen inte hittas söker ASP.NET efter en överlagring som inte har några parametrar.

När AutoEventWireup är falsemåste du uttryckligen binda händelsehanterare till händelser, som du ser i föregående exempel. I så fall behöver metodnamnen inte följa ett mönster.

Standardvärdet är true om AutoEventWireup det inte anges i @ Page direktivet. Visual Studio innehåller automatiskt attributet när det skapar kod bakom filer. För ASP.NET sidor som skrivits i C# anger Visual Studio värdet till true. För Visual Basic anger Visual Studio värdet till false eftersom hanterare är bundna till händelser med hjälp av nyckelordet Handles som infogas automatiskt av Visual Studio när en händelsehanterare genereras. Om du anger AutoEventWireup till truekan du utelämna (eller ta bort) nyckelordet Referenser .

Ange inte AutoEventWireup om true prestanda är en viktig faktor. När automatisk händelseöverföring är aktiverad måste ASP.NET göra mellan 15 och 30 försök att matcha händelser med metoder.

Observera följande om att binda händelsehanterare till händelser:

  • Om du anger AutoEventWireup till truekontrollerar du att du inte också manuellt kopplar sidhändelsehanterare till händelser. Om du gör det kan hanterare anropas mer än en gång.

  • Automatisk bindning utförs endast för sidhändelser, inte för händelser för kontroller på sidan.

  • Som ett alternativ till att binda händelser till hanterare kan du åsidosätta Onsidans eventname-metoder eller kontroller.

Gäller för