ASP.NET回调简单示例

转自网络某高人,找不到原网址了。摘录一下

前端代码:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SimpleDemo.aspx.cs" Inherits="SimpleDemo" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <title></title>
 8     <script type="text/javascript" language="javascript">
 9         function callServer() {
10             var sendServerArg = document.getElementById("txtInput").value;
11             <%=ClientScript.GetCallbackEventReference(this,"sendServerArg","receiveServerResult",null,true) %>; //该方法实现前台和后天的tong通信
12         }
13 
14         function receiveServerResult(result){
15             //回调函数处理
16             if(result=="0")
17             {
18                 alert("传入到服务器的参数是偶数");
19             }
20             else
21             {
22                 alert("传入到服务器的参数是奇数");
23             }
24         }
25     </script>
26 </head>
27 <body>
28     <form id="form1" runat="server">
29     <div>
30         <asp:TextBox ID="txtInput" runat="Server"></asp:TextBox>
31         <asp:Button ID="btnCallback" runat="Server" Text="调用回调函数" 
32             OnClientClick="callServer();"/>
33     </div>
34     </form>
35 </body>
36 </html>

 

后台代码:

 1 using System.Data;
 2 using System.Configuration;
 3 using System.Web;
 4 using System.Web.Security;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7 using System.Web.UI.WebControls.WebParts;
 8 using System.Web.UI.HtmlControls;
 9 using System.Collections.Generic;
10 using System.Collections;
11 using System;
12 
13 public partial class SimpleDemo : System.Web.UI.Page,ICallbackEventHandler
14 {
15     public string clientParam;
16 
17     protected void Page_Load(object sender, EventArgs e)
18     {
19 
20     }
21 
22     /// <summary>
23     /// 经过后台处理返回给客户端的值
24     /// </summary>
25     /// <returns></returns>
26     public string GetCallbackResult()
27     {
28         string strT="";
29         try
30         {
31             int i = Int32.Parse(clientParam);
32             if (i % 2 == 0)
33                 strT = "0";
34             else
35                 strT = "1";
36         }
37         catch (System.Exception ex)
38         {
39             throw new Exception(ex.Message);
40         }
41         return strT;
42     }
43 
44     /// <summary>
45     /// 获取客户端发送至后台服务器的参数
46     /// </summary>
47     /// <param name="eventArgument">前台发送至后台服务器的参数</param>
48     public void RaiseCallbackEvent(string eventArgument)
49     {
50         clientParam = eventArgument;
51     }
52 }


 

注:

1. <%=ClientScript.GetCallbackEventReference(this,"sendServerArg","receiveServerResult",null,true) %>; fa该方法主要用来在服务器端与客户端之间进行信息交互。要激发

  一个Callback,首先需要在客户端发出一个调用。

  thi:表示执行回调的服务器端控件是这个Page;该参数也可以为某个Web控件引用。

  "sendServerResult":传递给服务器eventArgument参数的值。该参数的使用方法为在前台代码中获取需要回调的值,用某一变量名表示。然后在该函数中使用该变量名的字符串即可。

  "receiveServerResult":当回调成功后,处理返回内容的客户端脚本函数名称。该函数必须存在执行回调的页面。

2.服务器端需要实现ICallbackEventHandler接口。

posted @ 2013-03-08 09:36  DayDreamInGIS  阅读(341)  评论(0)    收藏  举报