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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.