Aracılığıyla paylaş


PagesSection.AutoEventWireup Özellik

Tanım

ASP.NET sayfalara yönelik olayların olay işleme işlevlerine otomatik olarak bağlanıp bağlanmadığını belirten bir değer alır veya ayarlar.

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

Özellik Değeri

true ASP.NET sayfaların olayları otomatik olarak olay işleme işlevlerine bağlıysa; aksi takdirde , false. Varsayılan değer: true.

Öznitelikler

Örnekler

Aşağıdaki kod örneği, kodda özelliğinin AutoEventWireup nasıl ayarlandığını veya okunmasını gösterir.

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

Aşağıdaki örnekte, olduğunda AutoEventWireup sayfa olaylarına otomatik olarak eklenen yöntem imzalarının iki biçimi gösterilmektedir 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

Aşağıdaki örnekte, olduğunda AutoEventWireup olayların açıkça nasıl bağlanacakları gösterilmektedir 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

Açıklamalar

olduğunda AutoEventWireuptrue, ASP.NET gibi Loadbir sayfa olayına olay işleyicilerini açıkça bağlamanızı gerektirmez.

olduğunda AutoEventWireupfalse, olayı açıkça bir yönteme bağlamanız gerekir. Örneğin, bir sayfanın kodunda bir Page_Load yönteminiz varsa, yöntemi yalnızca aşağıdaki örnekteki gibi bir kod yazdığınızda olaya yanıt olarak Load çağrılır (Visual Basic'teki deyimine Handles ve C# dilinde olay işleyici koduna dikkat edin):

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);
    }
}

olduğunda AutoEventWireuptrue, işleyiciler adlarına ve imzalarına göre çalışma zamanındaki olaylara otomatik olarak bağlanır. her olay için ASP.NET, veya Page_Initgibi Page_Load desen Page_olay adına göre adlandırılmış bir yöntem arar. ASP.NET önce tipik olay işleyicisi imzasını (ve parametrelerini belirtir ObjectEventArgs ) içeren bir aşırı yüklemeyi denetler. Bu imzaya sahip bir olay işleyicisi bulunamazsa, ASP.NET parametresi olmayan bir aşırı yüklemeyi denetler.

olduğunda AutoEventWireupfalse, önceki örnekte gösterildiği gibi olay işleyicilerini olaylara açıkça bağlamanız gerekir. Bu durumda, yöntem adlarının bir desene uyması gerekmez.

Varsayılan değer yönergesinde @ Page belirtilmezse AutoEventWireup şeklindedirtrue. Visual Studio arka planda kod dosyaları oluşturduğunda özniteliğini otomatik olarak ekler. C# dilinde yazılmış ASP.NET sayfalar için Visual Studio değeri olarak trueayarlar. Visual Basic için, işleyiciler olaylara false bağlı olduğundan Visual Studio değerini olarak ayarlar, çünkü işleyiciler olay işleyicisi oluşturduğunda Visual Studio tarafından otomatik olarak eklenen Handles anahtar sözcüğünü kullanır. olarak trueayarlarsanız AutoEventWireupHandles anahtar sözcüğünü atlayabilir (veya kaldırabilirsiniz).

Performans önemli bir noktaysa olarak ayarlamayın AutoEventWireuptrue . Otomatik olay kablolama etkinleştirildiğinde, ASP.NET olayları yöntemlerle eşleştirmek için 15 ile 30 arası denemeler yapmalıdır.

Olay işleyicilerini olaylara bağlama hakkında aşağıdakilere dikkat edin:

  • olarak ayarlarsanız AutoEventWireup , olaylara truesayfa olayı işleyicilerini de el ile eklemediğinizden emin olun. Bunu yaparsanız, işleyiciler birden fazla kez çağrılabilir.

  • Otomatik bağlama yalnızca sayfa olayları için gerçekleştirilir, sayfadaki denetimler için değil.

  • Olayları işleyicilere bağlamaya alternatif olarak, sayfanın veya denetimlerin Oneventname yöntemlerini geçersiz kılabilirsiniz.

Şunlara uygulanır