Como: Implementar Callbacks em páginas da Web do ASP.NET

Em um retorno de chamada do cliente, uma função script de cliente envia uma solicitação para a página da Web do ASP.NET, que, em seguida, executa uma versão abreviada do seu ciclo de vida normal para processar o retorno de chamada.Para garantir que os eventos de retorno de chamada originem da interface do usuário (IU) esperada, você pode validar retornos de chamada.Validação de retorno de chamada registra um evento para validação durante o processamento de página da Web e, em seguida, valida o evento durante o retorno de chamada.Para uma visão geral de callbacks, consulte Implementando Callbacks de Clientes Através de Programação Sem Postbacks nas Páginas ASP.NET.

Para implementar a interface ICallBackEventHandler

  1. Para uma página de arquivo único ou controle de usuário, implemente a interface ICallbackEventHandler usando uma diretiva @ Implements na página, como mostrado no exemplo a seguir.

    <%@ Page Language="VB" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    <%@ Page Language="C#" %>
    <%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
    
    Observação:

    Se você estiver usando um modelo de página code-behind, implemente a interface ICallbackEventHandler para a classe parcial.

  2. Implementar o método RaiseCallbackEvent da interface ICallbackEventHandler.O método RaiseCallbackEvent aceita um argumento único que representa os argumentos de eventos, como mostrado no exemplo a seguir.

    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
    Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
    
    End Sub
    
    public void RaiseCallbackEvent(String eventArgument)
    {
    
    }
    
  3. Implementar o método GetCallbackResult da interface ICallbackEventHandler.O método GetCallbackResultnão utiliza argumentos e retorna uma sequência de caracteres que representa o resultado de retorno de chamada.No exemplo a seguir, uma sequência de caracteres chamada returnValue será retornada.

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

Para registrar o retorno de chamada para eventos de validação

  • Substitua o método Render da classe Page e use o método RegisterForEventValidation da classe ClientScriptManager para registrar um evento para validação.Você pode obtenher uma referência à classe ClientScriptManager usando a propriedade ClientScript da classe Page.No exemplo a seguir, um retorno de chamada chamado Callback1 está registrado para eventos de validação.

    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);
    }
    

Para validar o retorno de chamada e retornar o resultado de retorno de chamada.

  • No método RaiseCallbackEvent, use o método ValidateEvent da classe ClientScriptManager para validar o evento.Use a mesma assinatura de método como aquele usado ao registrar o evento de validação.No exemplo a seguir, a assinatura de método que usa um argumento é usada.

    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.
        } 
    }
    

    Se a validação passa, seu código deve continuar com a lógica de eventos de retorno de chamada.Após o método RaiseCallbackEvent concluido, o método GetCallbackResult é chamado para retornar o resultado de retorno de chamada como uma sequência de caracteres para uma função script de cliente.

    Para obter mais informações sobre como criar e implementar as funções script de cliente para oferecer suporte a retornos de chamada de cliente, consulte Implementando Callbacks de Clientes Através de Programação Sem Postbacks nas Páginas ASP.NET e Retorno de chamada de cliente com exemplo de implementação de validação.

Consulte também

Conceitos

Implementando Callbacks de Clientes Através de Programação Sem Postbacks nas Páginas ASP.NET

Retorno de chamada de cliente com exemplo de implementação de validação