Sdílet prostřednictvím


PagesSection.AutoEventWireup Vlastnost

Definice

Získá nebo nastaví hodnotu určující, zda události pro ASP.NET stránky jsou automaticky připojeny k funkcím zpracování událostí.

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

Hodnota vlastnosti

truepokud jsou události pro ASP.NET stránky automaticky připojeny k funkcím zpracování událostí; v opačném případě . false Výchozí hodnota je true.

Atributy

Příklady

Následující příklad kódu ukazuje, jak nastavit nebo přečíst AutoEventWireup vlastnost v kódu.

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

Následující příklad ukazuje dvě formy podpisů metody, které jsou automaticky připojeny k událostem stránky, pokud AutoEventWireup je 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

Následující příklad ukazuje, jak explicitně připojit události, když AutoEventWireup je 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

Poznámky

Pokud AutoEventWireup je true, ASP.NET nevyžaduje explicitní vazbu obslužných rutin událostí na událost stránky, například Load.

Pokud AutoEventWireup je false, musíte explicitně svázat událost s metodou. Pokud máte například metodu Page_Load v kódu stránky, metoda bude volána v reakci na Load událost pouze v případě, že napíšete kód podobný v následujícím příkladu (všimněte si Handles příkazu v jazyce Visual Basic a kódu obslužné rutiny události v jazyce 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);
    }
}

Pokud AutoEventWireup je , trueobslužné rutiny jsou automaticky vázány na události za běhu na základě jejich názvu a podpisu. Pro každou událost ASP.NET hledá metodu, která je pojmenována podle vzoru Page_název události, například Page_Load nebo Page_Init. ASP.NET nejprve zkontroluje přetížení, které má typický podpis obslužné rutiny události (to znamená, že určuje Object a EventArgs parametry). Pokud obslužná rutina události s tímto podpisem není nalezena, ASP.NET zkontroluje přetížení, které nemá žádné parametry.

Pokud AutoEventWireup je false, musíte explicitně svázat obslužné rutiny událostí s událostmi, jak je znázorněno v předchozím příkladu. V takovém případě nemusí názvy metod dodržovat vzor.

Výchozí hodnota je true , pokud AutoEventWireup není zadána v direktivě @ Page . Visual Studio automaticky zahrne atribut při vytváření souborů za kódem. Pro ASP.NET stránky napsané v jazyce C# sada Visual Studio nastaví hodnotu na true. V sadě Visual Basic sada Visual Studio nastaví hodnotu na false to, že obslužné rutiny jsou vázány na události pomocí klíčového slova Popisovače, které se automaticky vloží sadou Visual Studio při generování obslužné rutiny události. Pokud nastavíte hodnotu AutoEventWireuptrue, můžete vynechat (nebo odebrat) klíčové slovo Popisovače .

Nenastavujte AutoEventWireup , true pokud je výkon klíčovým aspektem. Pokud je povolené automatické připojení událostí, ASP.NET musí provést mezi 15 a 30 pokusy o shodu událostí s metodami.

Všimněte si následujících informací o obslužných rutinách událostí vazby na události:

  • Pokud nastavíte AutoEventWireup nastavení true, ujistěte se, že k událostem nepřipojíte také ručně obslužné rutiny událostí stránky. Pokud to uděláte, obslužné rutiny se můžou volat vícekrát.

  • Automatická vazba se provádí pouze pro události stránky, ne pro události ovládacích prvků na stránce.

  • Jako alternativu k vazbě událostí na obslužné rutiny můžete přepsat On metody eventname stránky nebo ovládacích prvků.

Platí pro