no codigo do servidor. Ambos, chamadas de retorno e postbacks, sao solicitacoes para a pagina de origem, assim, chamadas de retorno cliente e postbacks sao armazenados em logs de servidores Web como uma solicitacao de pagina. Implementando a Interface Apropriada no Codigo do Servidor Para executar com exito o codigo do servidor a partir do cliente sem executar um postback, voce deve implementar as interfaces apropriadas no codigo do servidor. Declarando a interface ICallbackEventHandler Voce pode declarar a interface ICallbackEventHandler como parte da declaracao de classe para a pagina. Se voce estiver criando uma pagina code-behind, voce pode declarar a interface utilizando sintaxe como demonstrado a seguir. Visual Basic Partial Class CallBack_DB_aspx Inherits System.Web.UI.Page Implements System.Web.UI.ICallbackEventHandler C# public partial class CallBack_DB_aspx : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler Se voce estiver trabalhando em uma pagina de um unico arquivo ou controle de usuario, voce pode adicionar a declaracao utilizando uma diretiva @ Implements na pagina, como nos exemplos de codigo a seguir: Visual Basic <%@ Page Language="VB" %><%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %> C# <%@ Page Language="C#" %><%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %> Observacao O nome interface diferencia maiusculas de minusculas. Criando um Metodo Callback de Servidor No codigo do servidor, voce deve criar um metodo que implementa o metodo RaiseCallbackEvent e um metodo que implementa o metodo GetCallbackResult. O metodo RaiseCallbackEvent aceita uma unica sequencia de caracteres como argumento, em vez dos dois argumentos que sao normalmente utilizados com manipuladores de eventos normal. Uma parte do metodo pode parecer com o exemplo de codigo a seguir. Visual Basic Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _ Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent Return eventArgument & " new value"End Sub C# public void RaiseCallbackEvent(String eventArgument){ return eventArgument + " new value";} O metodo GetCallbackResult nao recebe argumentos e retorna uma sequencia de caracteres. Uma parte do metodo pode parecer com o exemplo de codigo a seguir. Visual Basic Public Function GetCallbackResult() As String Implements _ System.Web.UI.ICallbackEventHandler.GetCallbackResult Return aStringValueEnd Function C# public string GetCallbackResult(){ return aStringValue;} Criando Funcoes Scripts Cliente Voce deve adicionar funcoes script cliente a pagina para executar duas funcoes: enviar a chamada de retorno para a pagina do servidor e receber os resultados. As duas funcoes script cliente sao gravadas no ECMAScript (JavaScript). Enviando a Chamada de Retorno A funcao para enviar a chamada de retorno e gerada no codigo do servidor. A chamada de retorno real e executada por uma funcao de biblioteca que esta disponivel para qualquer pagina que implementa a interface ICallbackEventHandler. Voce pode obter uma referencia para a funcao de biblioteca chamando o metodo GetCallbackEventReference da pagina, que pode ser acessado atraves da propriedade ClientScript da pagina. Voce entao compila uma funcao cliente dinamicamente que inclui uma chamada para o valor de retorno do metodo GetCallbackEventReference. Voce passa para esse metodo uma referencia para a pagina (this no C# ou Me no Visual Basic), o nome do argumento pelo qual voce ira passar dados, o nome da funcao script cliente que recebera os dados da chamada de retorno, e um argumento que passa qualquer contexto que voce desejar. Quando voce tiver compilado a funcao, voce a insere dentro da