Share via


방법: ASP.NET 웹 페이지에서 콜백 구현

업데이트: 2007년 11월

클라이언트 콜백에서 클라이언트 스크립트 함수는 ASP.NET 웹 페이지에 요청을 보내고, 이 웹 페이지에서는 콜백을 처리하기 위해 약식 버전의 일반 수명 주기를 실행합니다. 올바른 UI(사용자 인터페이스)를 사용하여 콜백 이벤트가 시작되었는지 확인하기 위해 콜백의 유효성을 검사할 수 있습니다. 콜백 유효성 검사는 웹 페이지를 렌더링하는 동안 유효성 검사를 위한 이벤트를 등록한 다음 콜백하는 동안 해당 이벤트의 유효성을 검사하는 과정으로 진행됩니다. 콜백에 대한 개요를 보려면 ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백을 프로그래밍 방식으로 구현을 참조하십시오.

ICallBackEventHandler 인터페이스를 구현하려면

  1. 단일 파일 페이지나 사용자 정의 컨트롤의 경우 다음 예제에서와 같이 페이지에 @ Implements 지시문을 사용하여 ICallbackEventHandler 인터페이스를 구현합니다.

    <%@ Page Language="VB" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    <%@ Page Language="C#" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    참고:

    코드 숨김 페이지 모델을 사용하는 경우 partial 클래스에 대해 ICallbackEventHandler 인터페이스를 구현합니다.

  2. ICallbackEventHandler 인터페이스의 RaiseCallbackEvent 메서드를 구현합니다. RaiseCallbackEvent 메서드에는 다음 예제와 같이 이벤트 인수를 나타내는 인수 한 개가 사용됩니다.

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
    
    End Sub
    
    public void RaiseCallbackEvent(String eventArgument)
    {
    
    }
    
  3. ICallbackEventHandler 인터페이스의 GetCallbackResult 메서드를 구현합니다. GetCallbackResult 메서드는 인수를 사용하지 않으며 콜백 결과를 나타내는 문자열을 반환합니다. 다음 예제에서는 returnValue라는 문자열이 반환됩니다.

    Public Function GetCallbackResult() _
    As String Implements _
    System.Web.UI.ICallbackEventHandler.GetCallbackResult
    
        Return returnValue
    
    End Function
    
    public String GetCallbackResult()
    {
        return returnValue;
    }
    

이벤트 유효성 검사를 위한 콜백을 등록하려면

  • Page 클래스의 Render 메서드를 재정의하고 ClientScriptManager 클래스의 RegisterForEventValidation 메서드를 사용하여 유효성 검사를 위한 이벤트를 등록합니다. Page 클래스의 ClientScript 속성을 사용하여 ClientScriptManager 클래스에 대한 참조를 얻을 수 있습니다. 다음 예제에서는 이벤트 유효성 검사를 위해 Callback1이라는 콜백이 등록됩니다.

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
    
        Page.ClientScript.RegisterForEventValidation("ClientCallback1")
        MyBase.Render(writer)
    
    End Sub
    
    protected override void Render(HtmlTextWriter writer)
    {
        Page.ClientScript.RegisterForEventValidation("ClientCallback1");
        base.Render(writer);
    }
    

콜백의 유효성을 검사하고 콜백 결과를 반환하려면

  • RaiseCallbackEvent 메서드에서 ClientScriptManager 클래스의 ValidateEvent 메서드를 사용하여 이벤트 유효성을 검사합니다. 유효성 검사를 위한 이벤트를 등록할 때 사용한 것과 같은 메서드 시그니처를 사용합니다. 다음 예제에서는 인수가 한 개인 메서드 시그니처가 사용됩니다.

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            Page.ClientScript.ValidateEvent("ClientCallback1")
            ' Callback logic goes here.
            returnValue = "callback result"
    
        Catch
            ' Failed callback validation logic.
        End Try
    
    End Sub
    
    public void RaiseCallbackEvent(String eventArgument)
    {
        try
        {
            Page.ClientScript.ValidateEvent("ClientCallback1");
            // Callback logic goes here.
            returnValue = "callback result";
        }
        catch
        {
            // Failed callback validation logic.
        } 
    }
    

    유효성 검사에 통과하면 콜백 이벤트 논리를 사용하여 코드가 처리됩니다. RaiseCallbackEvent 메서드의 실행이 완료되면 콜백 결과를 클라이언트 스크립트 함수에 문자열로 반환하기 위한 GetCallbackResult 메서드가 호출됩니다.

    클라이언트 콜백을 지원하는 클라이언트 스크립트 함수를 만들고 구현하는 방법에 대한 자세한 내용은 ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백을 프로그래밍 방식으로 구현유효성 검사 기능이 있는 클라이언트 콜백 구현 예제를 참조하십시오.

참고 항목

개념

ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백을 프로그래밍 방식으로 구현

유효성 검사 기능이 있는 클라이언트 콜백 구현 예제