ASP.NET 2.0中的ICallbackEventHandler说明
来源:互联网 发布:淘宝直播卖玉是真的吗 编辑:程序博客网 时间:2024/04/29 21:56
AJAX技术所提倡的无刷新回调,在原来的技术中需要写大量的JavaScript代码或使用一些AJAX框架,使得开发效率和可维护性大大降低。其实ASP.NET2.0中,已经提供了这样的接口,这就是ICallbackEventHandler。
ICallbackEventHandler存在于System.Web.UI中,我们先做一个非常简单的例子来试用一下。
第一步,在VS2005中建立一个新的WEB窗件。
第二步,在ASPX中,放上一段HTML代码(如下):
<button onclick="CallServer()">CallServer</button>
第三步,然后在<HEAD></HEAD>中放入一段JavaScript脚本:
<script type="text/javascript">
function CallServer()
{
var str = "上海XX计算机信息有限公司";
<%= ClientScript.GetCallbackEventReference(this, "str", "ReceiveServerData",null)%>;
}
function ReceiveServerData(serverResponseResult)
{
alert(serverResponseResult);
}
</script>
GetCallbackEventReference的参数说明:
第一个:实现了ICallbackEventHandler接口的页面或者服务器控件,写this代表当前页面。处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供包括必须实现string GetCallbackResult()和void RaiseCallbackEvent(eventArgument)这两个接口函数。
第二个:代表从客户端传递给服务器RaiseCallbackEvent方法的值
第三个:客户端的一个js函数名称,同时,服务器也会把计算得到的数据传递给这个函数做为这个函数的参数。
第四个:启动回调之前在客户端计算的客户端脚本。脚本的结果传回客户端事件处理程序。
第四步,在此ASPX的后台CS代码中,继承ICallbackEventHandler接口,并实现接口中的两个方法: ICallbackEventHandler.GetCallbackResult() 和 ICallbackEventHandler.RaiseCallbackEvent(string eventArgument),并且在Form_load里面添加ClientScript.GetCallbackEventReference(this, "", "", null);
第五步,增加一个变量CallBackValue,并修改接口的两个方法为:
#region ICallbackEventHandler Members
string ICallbackEventHandler.GetCallbackResult()
{
return CallBackValue + ",ICallbackEventHandler的测试";
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
this.CallBackValue = eventArgument;
}
#endregion
第六步,运行,界面上会出现一个按钮,点击后,会将“上海XX计算机信息有限公司”这个字符串传至后台,后台C#代码将字符串加上“,ICallbackEventHandler的测试”后返回给客户端的JavaScript代码,并显示。
以上六步,就可以实现无刷新回调了。现在,我们来分析一下几段代码。
先看第三步中的JavaScript代码,其中的CallServer()方法中进行了回调,回调的语句为: <%= ClientScript.GetCallbackEventReference(this, "str", "ReceiveServerData",null)%>;
里面四个参数中第二个参数指定将product这个JavaScript中的字符串变量传回后台,第三个参数指定了从后台返回时接收返回信息的JavaScript方法ReceiveServerData(string Value)。
第五步中后台的两个方法,一个ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)用来接收前台JavaScript中传来的字符串变量,并赋值给内部变量this.CallBackValue,另一个方法ICallbackEventHandler.GetCallbackResult()将变更后的内部变量this.CallBackValue返回给前台JavaScript方法ReceiveServerData(string Value)。
调用的顺序是: (前台)CallServer() --> (后台)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) --> (后台)ICallbackEventHandler.GetCallbackResult() --> (前台)ReceiveServerData(string Value)。
整个调用过程非常简单,而其中非常关键的一步是第三步的。 <%= ClientScript.GetCallbackEventReference(this, "str", "ReceiveServerData",null)%>;
- ASP.NET 2.0中的ICallbackEventHandler说明
- ASP.NET 2.0 Client Callback (ICallBackEventHandler)
- Asp.Net 2.0使用ICallbackEventHandler实现无刷新回调
- asp.net 前后台交互 ICallbackEventHandler
- ASP.Net页面实现ICallbackEventHandler接口,不能工作的问题。
- ASP.NET基于ICallbackEventHandler的轻量级异步回调
- 关于ASP.NET中的身份模拟说明
- ASP.NET中的TextBox换行符说明
- NPM在ASP.NET 5中的说明
- ICallbackEventHandler
- ICallbackEventHandler
- ASP.NET 2.0 GridView控件说明
- Asp.Net 配置文件说明
- ASP.Net文件夹说明
- ASP中的函数说明
- ASP.NET 2.0中的counterpager
- asp.net 2.0中的ValidationGroup
- asp.net 2.0中的profile
- 被狗咬伤紧急处理方法
- 分享:菜鸟的练习--我的第一个小板凳
- nandflash分区
- NET中用JavaScript来创建XMLHttpRequest 的Ajax开发介绍
- 增加控制文件controlfile
- ASP.NET 2.0中的ICallbackEventHandler说明
- 三国志吞食天地2(街机)的全人物通关研究
- 中锋传承之路
- php--ca界面
- 保持一颗好学之心
- 修改IIS 设置让下载INI文件
- Linux系统管理实践(3):GRUB系统引导配置
- 实现小数据量和海量数据的通用分页显示存储过程
- 正向代理/反向代理/透明代理/透明模式