PagesSection.AutoEventWireup Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of gebeurtenissen voor ASP.NET pagina's automatisch zijn verbonden met functies voor gebeurtenisafhandeling.
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
Waarde van eigenschap
true als gebeurtenissen voor ASP.NET pagina's automatisch zijn verbonden met functies voor gebeurtenisafhandeling; anders false. De standaardwaarde is true.
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de AutoEventWireup eigenschap in code instelt of leest.
// 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
In het volgende voorbeeld ziet u de twee vormen van methodehandtekeningen die automatisch worden gekoppeld aan pagina-gebeurtenissen wanneer AutoEventWireup dit is 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
In het volgende voorbeeld ziet u hoe u gebeurtenissen expliciet kunt inschakelen wanneer AutoEventWireup dit is 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
Opmerkingen
Wanneer AutoEventWireup is true, hoeft ASP.NET niet expliciet gebeurtenishandlers te binden aan een pagina-gebeurtenis zoals Load.
Wanneer AutoEventWireup is false, moet u de gebeurtenis expliciet binden aan een methode. Als u bijvoorbeeld een Page_Load-methode in de code voor een pagina hebt, wordt de methode alleen aangeroepen als reactie op de gebeurtenis Load als u in het volgende voorbeeld code schrijft (let op de instructie Handles in Visual Basic en de gebeurtenishandlercode 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);
}
}
Wanneer AutoEventWireup dat het is true, worden handlers automatisch gebonden aan gebeurtenissen tijdens runtime op basis van hun naam en handtekening. Voor elke gebeurtenis zoekt ASP.NET naar een methode met de naam volgens het patroon Page_eventname, zoals Page_Load of Page_Init. ASP.NET controleert eerst op een overbelasting met de typische handtekening van de gebeurtenis-handler (dat wil gezegd, het specificeert Object en EventArgs parameters). Als een gebeurtenis-handler met deze handtekening niet wordt gevonden, ASP.NET controleert op een overbelasting met geen parameters.
Wanneer AutoEventWireup is false, moet u gebeurtenis-handlers expliciet binden aan gebeurtenissen, zoals wordt weergegeven in het voorgaande voorbeeld. In dat geval hoeven de methodenamen geen patroon te volgen.
De standaardwaarde is true als AutoEventWireup deze niet is opgegeven in de @ Page richtlijn. Visual Studio automatisch het kenmerk bevat wanneer er code-behind-bestanden worden gemaakt. Voor ASP.NET pagina's die in C# zijn geschreven, stelt Visual Studio de waarde in op true. Voor Visual Basic stelt Visual Studio de waarde in op false omdat handlers afhankelijk zijn van gebeurtenissen met behulp van het trefwoord Handles, dat automatisch wordt ingevoegd door Visual Studio wanneer er een gebeurtenis-handler wordt gegenereerd. Als u deze optie instelt AutoEventWireuptrue, kunt u het trefwoord Handles weglaten (of verwijderen).
Stel deze optie niet in AutoEventWireuptrue als de prestaties een belangrijke overweging zijn. Wanneer automatische gebeurtenisdraad is ingeschakeld, moet ASP.NET tussen 15 en 30 proberen gebeurtenissen te koppelen aan methoden.
Let op het volgende over het binden van gebeurtenis-handlers aan gebeurtenissen:
Als u deze optie instelt AutoEventWireup
true, moet u ervoor zorgen dat u geen pagina-gebeurtenis-handlers handmatig koppelt aan gebeurtenissen. Als u dat doet, worden handlers mogelijk meer dan één keer aangeroepen.Automatische binding wordt alleen uitgevoerd voor pagina-gebeurtenissen, niet voor gebeurtenissen voor besturingselementen op de pagina.
Als alternatief voor bindingsgebeurtenissen voor handlers kunt u de
Ongebeurtenisnaammethoden van de pagina of besturingselementen overschrijven.