PagesSection.AutoEventWireup Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ı için 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 nasıl ayarlandığını veya okunmasını AutoEventWireup 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 örnekte böyle bir kod yazdığınızda olaya yanıt olarak Load çağrılır (Visual Basic'teki deyimine Handles ve C# içindeki 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ı (yani ve EventArgs parametrelerini belirtirObject) içeren bir aşırı yükleme olup olmadığını denetler. Bu imzaya sahip bir olay işleyicisi bulunamazsa, ASP.NET parametresi olmayan bir aşırı yüklemeyi denetler.
falseolduğundaAutoEventWireup, ö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 deseni izlemesi gerekmez.
Varsayılan değer yönergesinde true@ Page belirtilmezse AutoEventWireup olur. Visual Studio arka planda kod dosyaları oluşturduğunda özniteliğini otomatik olarak içerir. Visual Studio, C# dilinde yazılmış ASP.NET sayfalar için değerini 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ştururken 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 kablo oluşturma etkinleştirildiğinde, ASP.NET olayları yöntemlerle eşleştirmek için 15 ile 30 arasında deneme yapması gerekir.
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.