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