ASP.NET Tutorial/Page Lifecycle/GetCallbackEventReference
Server side call back (C#)
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="RandomNumber" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Callback Page</title> <script type="text/javascript"> function GetNumber(){ UseCallback(); } function GetRandomNumberFromServer(TextBox1, context){ document.forms[0].TextBox1.value = TextBox1; } </script>
</head> <body>
<form id="form1" runat="server">
<input id="Button1" type="button" value="Get Random Number" onclick="GetNumber()" />
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class RandomNumber : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler {
private string _callbackResult = null; protected void Page_Load(object sender, EventArgs e) { string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "GetRandomNumberFromServer", "context"); string cbScript = "function UseCallback(arg, context)" + "{" + cbReference + ";" + "}"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallback", cbScript, true); } public void RaiseCallbackEvent(string eventArg) { Random rnd = new Random(); _callbackResult = rnd.Next().ToString(); } public string GetCallbackResult() { return _callbackResult; }
}</source>
Server side call back (VB)
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="RandomNumber" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Callback Page</title> <script type="text/javascript"> function GetNumber(){ UseCallback(); } function GetRandomNumberFromServer(TextBox1, context){ document.forms[0].TextBox1.value = TextBox1; } </script>
</head> <body>
<form id="form1" runat="server">
<input id="Button1" type="button" value="Get Random Number" onclick="GetNumber()" />
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>
</form>
</body> </html> File: Default.aspx.vb
Partial Class RandomNumber
Inherits System.Web.UI.Page Implements System.Web.UI.ICallbackEventHandler Dim _callbackResult As String = Nothing Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Dim cbReference As String = Page.ClientScript.GetCallbackEventReference(Me, "arg", "GetRandomNumberFromServer", "context") Dim cbScript As String = "function UseCallback(arg, context)" & _ "{" & cbReference & ";" & "}" Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), _ "UseCallback", cbScript, True) End Sub Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent _callbackResult = Rnd().ToString() End Sub Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult Return _callbackResult End Function
End Class</source>