ASP.NET2.0实现无刷新客户端回调(1)
点击次数:27 次 发布日期:2008-11-26 15:44:05 作者:源代码网
|
源代码网推荐 源代码网推荐 首先我们要说一个很重要的方法:GetCallbackEventRefernce.我把我的理解写出来,可能是错误的,恳请指出,非常感谢! 源代码网推荐 源代码网推荐 GetCallbackEventReference首先实现让客户端脚本有能力传递参数给服务器端的RaiseCallbackEvent方法,然后返回RaiseCallBackEvent方法的值给你在GetCallbackEventRefernce方法中注册的一个参数(其实也是一个你要在客户端写的脚本)。调用GetCallbackEventRefernce你必须从客户端脚本中传递给他两个参数,一个是要传递给RaiseCallbackEvent事件的值,一个是context. 源代码网推荐 源代码网推荐 他的参数意义如下: 源代码网推荐 源代码网推荐 第一个:实现了ICallbackEventHandler借口的页面或者服务器控件,写this代表但前页面。 源代码网推荐 源代码网推荐 第二个:代表你从要从客户端传递给服务器RaiseCallbackEvent方法的值 源代码网推荐 源代码网推荐 第三个:你要在客户端写的一个js函数,同时,服务器也会把计算得到的数据传递给这个函数做为这个函数的参数。 源代码网推荐 源代码网推荐 第四个:context具体什么意思我也不太清楚GetCallbackEventRefernce发送到了客户、端的代码是这样的: 源代码网推荐 源代码网推荐 WebForm_DoCallback("__Page",arg,ReceiveServerData,context,null,false) 源代码网推荐 源代码网推荐 那么我们要怎么样做才能够从客户端调用他呢?看到了三中方法: 源代码网推荐 源代码网推荐 第一种:在后台写个public string,在Page_Load中给他赋值为:=Page.ClientScript.GetCallbackEventReference(this, "message", "ShowServerTime", "context");注意在这里是Page.ClientScrip,因为他会返回个ClientScriptManager,ClientScriptManager管理所有的客户端脚本。然后在前台某个按钮的onclick事件里<%=那个public后台字符串%>.做个小实验代码如下: 源代码网推荐 源代码网推荐 前台ServerTime.aspx:为了方便去掉好多没用的html 源代码网推荐 源代码网推荐 <%@ page language="C#" CodeFile="ServerTime.aspx.cs" Inherits="ServerTime_aspx" %> 源代码网推荐 <html> 源代码网推荐 <head> 源代码网推荐 <title>Server Time</title> 源代码网推荐 <script language="JavaScript"> 源代码网推荐 源代码网推荐 function GetServerTime() 源代码网推荐 { 源代码网推荐 var message = ""; 源代码网推荐 var context = ""; 源代码网推荐 <%=sCallBackFunctionInvocation%> 源代码网推荐 } 源代码网推荐 源代码网推荐 function ShowServerTime(timeMessage, context) { 源代码网推荐 alert("现在服务器上的时间是: " + timeMessage); 源代码网推荐 } 源代码网推荐 </script> 源代码网推荐 </head> 源代码网推荐 <body> 源代码网推荐 <form id="MainForm" runat="server"> 源代码网推荐 <input type="button" value="得到服务器端时间" onclick="GetServerTime();" /> 源代码网推荐 </form> 源代码网推荐 </body> 源代码网推荐 </html> 源代码网推荐 源代码网推荐 后台: 源代码网推荐 源代码网推荐 using System; 源代码网推荐 using System.Web.UI; 源代码网推荐 源代码网推荐 public partial class ServerTime_aspx : Page,ICallbackEventHandler 源代码网推荐 { 源代码网推荐 //一定要实现ICallbackEventHandler借口 源代码网推荐 public string sCallBackFunctionInvocation; 源代码网推荐 源代码网推荐 void Page_Load(object sender, System.EventArgs e) 源代码网推荐 { 源代码网推荐 sCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this, "message", "ShowServerTime", "context"); 源代码网推荐 } 源代码网推荐 源代码网推荐 public string RaiseCallbackEvent(string eventArgument) 源代码网推荐 { 源代码网推荐 return DateTime.Now.ToString(); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 运行,点按钮结果如下: 源代码网推荐
源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
