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ı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_Init
gibi 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 true
ayarlar. 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 true
ayarlarsanı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
true
sayfa 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
On
eventname yöntemlerini geçersiz kılabilirsiniz.