ASP.NET Tutorial/Page Lifecycle/GetCallbackEventReference

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>