다음을 통해 공유


PagesSection.AutoEventWireup 속성

정의

ASP.NET 페이지의 이벤트가 이벤트 처리 함수에 자동으로 연결되는지 여부를 나타내는 값을 가져오거나 설정합니다.

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

속성 값

ASP.NET 페이지의 이벤트가 이벤트 처리 함수에 자동으로 연결되면 true이고, 그렇지 않으면 false입니다. 기본값은 true입니다.

특성

예제

다음 코드 예제를 설정 하거나 읽을 방법을 AutoEventWireup 코드에서 속성입니다.

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

다음 예제에서는 두 가지 형태의 메서드 시그니처는 자동으로 페이지 이벤트에 연결 하는 경우 AutoEventWireuptrue합니다.

<%@ 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

다음 예제에서는 이벤트에 명시적으로 연결 하는 방법을 보여 줍니다 때 AutoEventWireupfalse합니다.

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

설명

AutoEventWireup 됩니다 true, ASP.NET 하면 명시적으로 바인딩하는 이벤트 처리기 페이지 이벤트와 같은 필요가 없는 Load.

AutoEventWireupfalse, 이벤트 메서드를 명시적으로 바인딩해야 합니다. 예를 들어 있는 경우를 Page_Load 페이지에 대 한 코드의 메서드에 대 한 응답에서 메서드 호출 됩니다 합니다 Load 다음과에서 같은 코드를 작성 하는 경우에 이벤트 (알 수 있습니다는 Handles Visual Basic 및 이벤트 처리기에서 문 코드에서 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);
    }
}

AutoEventWireuptrue, 처리기 해당 이름과 시그니처를 기반으로 런타임에 바인딩된 이벤트에 자동으로 합니다. 각 이벤트에 대 한 ASP.NET 패턴에 따라 명명 된 메서드에 대 한 검색 Page_eventname와 같은 Page_Load 또는 Page_Init합니다. ASP.NET 먼저 일반적인 이벤트 처리기 서명이 오버 로드 확인 (즉, 지정 ObjectEventArgs 매개 변수). 이 서명 사용 하 여 이벤트 처리기가 없으면 ASP.NET 매개 변수가 없는 오버 로드를 확인 합니다.

AutoEventWireupfalse를 명시적으로 이벤트 처리기에 바인딩해야 이벤트 앞의 예제에 표시 된 대로 합니다. 이 경우 메서드 이름 패턴을 따르도록 필요가 없습니다.

기본값은 true 하는 경우 AutoEventWireup 에 지정 되어 있지는 @ Page 지시문입니다. Visual Studio 코드 숨김 파일을 만들 때 특성을 자동으로 포함 됩니다. 값을 Visual Studio C#으로 작성 된 ASP.NET 페이지에 대 한 설정 true합니다. Visual Basic의 경우 처리기가 이벤트 처리기를 생성할 false 때 Visual Studio에서 자동으로 삽입되는 Handles 키워드(keyword) 사용하여 이벤트에 바인딩되기 때문에 Visual Studio는 값을 로 설정합니다. 로 true설정 AutoEventWireup 하면 핸들 키워드(keyword) 생략(또는 제거)할 수 있습니다.

설정 하지 마세요 AutoEventWireuptrue 성능이 주요 고려 사항인 경우. 자동 이벤트 연결이 설정 되 면 ASP.NET은 메서드를 사용 하 여 이벤트를 일치 하도록 시도 15 자에서 30 사이의 확인 해야 합니다.

이벤트에 이벤트 처리기를 바인딩하는 방법에 대 한 다음 note:

  • 설정 하는 경우 AutoEventWireuptrue에 연결 하지 않는 것도 수동으로 페이지 이벤트 처리기 이벤트에 있는지 확인 합니다. 이렇게 하면 여러 번 처리기 호출 될 수 있습니다.

  • 자동 바인딩 페이지의 컨트롤에 대 한 이벤트가 아닌 페이지 이벤트에 대해서만 수행 됩니다.

  • 이벤트 처리기를 바인딩하는 대신 재정의할 수 있습니다 합니다 Oneventname 메서드 또는 컨트롤의 페이지입니다.

적용 대상