Bagikan melalui


PagesSection.AutoEventWireup Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan apakah peristiwa untuk halaman ASP.NET secara otomatis tersambung ke fungsi penanganan peristiwa.

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

Nilai Properti

true jika peristiwa untuk halaman ASP.NET secara otomatis terhubung ke fungsi penanganan peristiwa; jika tidak, false. Default adalah true.

Atribut

Contoh

Contoh kode berikut menunjukkan cara mengatur atau membaca AutoEventWireup properti dalam kode.

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

Contoh berikut menunjukkan dua bentuk tanda tangan metode yang secara otomatis dilampirkan ke peristiwa halaman saat AutoEventWireup adalah 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

Contoh berikut menunjukkan cara secara eksplisit menyambungkan peristiwa saat AutoEventWireup adalah 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

Keterangan

Ketika AutoEventWireup adalah true, ASP.NET tidak mengharuskan Anda secara eksplisit mengikat penanganan aktivitas ke peristiwa halaman seperti Load.

Ketika AutoEventWireup adalah false, Anda harus secara eksplisit mengikat peristiwa ke metode . Misalnya, jika Anda memiliki Page_Load metode dalam kode untuk halaman, metode akan dipanggil sebagai respons terhadap Load peristiwa hanya jika Anda menulis kode seperti itu dalam contoh berikut (perhatikan Handles pernyataan di Visual Basic dan kode penanganan aktivitas di 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);
    }
}

Ketika AutoEventWireup adalah true, handler secara otomatis terikat ke peristiwa pada durasi berdasarkan nama dan tanda tangannya. Untuk setiap peristiwa, ASP.NET mencari metode yang dinamai sesuai dengan nama peristiwa polaPage_, seperti Page_Load atau Page_Init. ASP.NET memeriksa terlebih dahulu kelebihan beban yang memiliki tanda tangan penanganan aktivitas umum (yaitu, menentukan Object parameter dan EventArgs ). Jika penanganan aktivitas dengan tanda tangan ini tidak ditemukan, ASP.NET memeriksa kelebihan beban yang tidak memiliki parameter.

Ketika AutoEventWireup adalah false, Anda harus secara eksplisit mengikat penanganan aktivitas ke peristiwa, seperti yang ditunjukkan dalam contoh sebelumnya. Dalam hal ini, nama metode tidak harus mengikuti pola.

Nilai default adalah true jika AutoEventWireup tidak ditentukan dalam direktif @ Page . Visual Studio secara otomatis menyertakan atribut saat membuat file code-behind. Untuk halaman ASP.NET yang ditulis dalam C#, Visual Studio mengatur nilai ke true. Untuk Visual Basic, Visual Studio mengatur nilai ke false karena handler terikat ke peristiwa dengan menggunakan kata kunci Handles , yang disisipkan secara otomatis oleh Visual Studio saat menghasilkan penanganan aktivitas. Jika Anda mengatur AutoEventWireup ke true, Anda dapat menghilangkan (atau menghapus) kata kunci Handel .

Jangan atur AutoEventWireup ke true jika performa adalah pertimbangan utama. Saat wireup peristiwa otomatis diaktifkan, ASP.NET harus membuat antara 15 dan 30 mencoba mencocokkan peristiwa dengan metode.

Perhatikan hal-hal berikut tentang mengikat penanganan aktivitas ke peristiwa:

  • Jika Anda mengatur AutoEventWireup ke true, pastikan Anda tidak juga melampirkan penanganan aktivitas halaman secara manual ke peristiwa. Jika Anda melakukannya, handler mungkin dipanggil lebih dari satu kali.

  • Pengikatan otomatis dilakukan hanya untuk peristiwa halaman, bukan untuk peristiwa untuk kontrol di halaman.

  • Sebagai alternatif untuk mengikat peristiwa ke handler, Anda dapat mengambil alih On metode eventname halaman atau kontrol.

Berlaku untuk