Client CallBack con ASP.NET 2.0

di Massimo Cappellesso, in ASP.NET 2.0, UserScript,

Con l'avvento di ASP.NET 2.0 verranno introdotte molte nuove funzionalità, tra le quali il Client Callback, ossia la possibilità di richiamare un metodo lato server attraverso un codice Javascript (quindi lato client) senza effettuare il postback della pagina.
In .NET 1.1 questo era possibile utilizzando i delegates, come spiegato da Cristian Civiera nello script #440 - Effettuare chiamate asincrone con i delegates di .NET
Con ASP.NET 2.0 questo è possibile grazie alla nuova interfaccia ICallBackEventHandler e al nuovo metodo Page.GetCallbackEventReference.
In questo script vedremo come recuperare la data e l'ora del server e visualizzarla su un alert Javascript:

<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<script runat="server">

' ICallbackEventHandler
Protected Function RaiseCallbackEvent(ByVal arg As String) As String Implements ICallbackEventHandler.RaiseCallbackEvent
  return DateTime.Now.ToString()
End Function

Public _return as string

'Override di Page_OnLoad
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
  If Not IsPostBack Then
    ' __CallbackHandler è la funzione JS da richiamare
    ' __CallbackError è la funzione JS in caso di errore
    _return = Me.ClientScript.GetCallbackEventReference(Me, "myClientSideVar", "__CallbackHandler", Nothing, "__CallbackError")
  End If
End Sub

</script>
<html>
<script language="javascript"><!--
function GetServerTime()
{
  var myClientSideVar = '';
  <%=_return%>
}
     
function __CallbackHandler(result, context) {
  alert('Data e ora del server:\n' + result);
}
     
function __CallbackError(message, context) {
  alert('Errore:\n' + message);
}

//--></script>
</head><body>
<form id="form1" runat="server">
<input type="button" value="Ora Server" onclick="GetServerTime();" />
</form>
</body></html>

Per approfondimenti su ASP.NET 2.0 si veda
http://aspdotnet2.aspitalia.com/

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi