知识大全 Asp.Net 2.0自带的客户端回调
Posted 知
篇首语:获取生活中最丰硕果实和最大享受的秘密在于,冒险犯难地生活!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.Net 2.0自带的客户端回调相关的知识,希望对你有一定的参考价值。
Asp.Net 2.0自带的客户端回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Asp Net 已经发布 有了许多新特性 客户端回调就是其中之一 客户端回调允许我们不经过回发而调用服务器端的方法 与AJAX提供的功能是一致的 但是不如AJAX灵活 AJAX可以自定义调用的方法 自带的回调功能却不行 要使用客户端回调功能必须实现 System Web UI IcallbackEventHandler接口
这个接口包含两个方法
//客户端回调时固定调用此方法
public void RaiseCallbackEvent(String eventArgument)
//执行完RaiseCallbackEvent后将调用此方法 此方法的返回值将被发回客户端
public string GetCallbackResult()
例
cs
String cbReference = Page ClientScript GetCallbackEventReference(
this arg ReceiveServerData context );
String callbackScript;
callbackScript = function CallServer(arg context) + + cbReference + ; ;
Page ClientScript RegisterClientScriptBlock(
this GetType() CallServer callbackScript true);
javascript
AJAX介绍
AJAX并不是一种新的技术 而是一些已有技术的有机结合 主要包括 XmlHttp Reflect 一个AJAX框架基本上包括 一个自定义的HttpHandler 一段JavaScript代码
AJAX运行机制
以前我们使用XmlHttp实现无刷新页面的时候 是用XmlHttp来请求一个隐藏的页面 使用(Asp/Asp Net)自带的 HttpHandler 而在AJAX中 我们请求的也是一个隐藏的页面 不同的是这个页面的HttpHandler是由我们自己来实现
打造自己的AJAX
首先我们要实现一个Http处理程序(HttpHandler)来响应客户端的请求
实现自定义的HttpHandler需要实现IHttpHandler接口
该接口包含一个属性和一个方法
bool IHttpHandler IsReusable
void IHttpHandler ProcessRequest(HttpContext context)
Example:
bool IHttpHandler IsReusable
get return true;
void IHttpHandler ProcessRequest(HttpContext context)
context Response Clear(); //获取要调用的方法
string methodName = context Request QueryString[ me ];
//获取程序集信息
//Czhenq AJAX Class Dencode是自定义的字符串编码方法
string AssemblyName = Czhenq AJAX Class Dencode(context Request QueryString[ as ]);
//获取方法的参数
string Arguments = context Request QueryString[ ar ]; //开始调用方法
Type type = Type GetType(AssemblyName);
MethodInfo method = type GetMethod(methodName
BindingFlags NonPublic | BindingFlags Public | BindingFlags Static | BindingFlags Instance);
if (method != null)
//参数使用 分隔
string[] args = Arguments Split( ToCharArray());
ParameterInfo[] paras = method GetParameters();
object[] argument = new object[paras Length];
for (int i = ; i <argument Length; i++)
if (i <args Length)
//因为XmlHttp传递过来的参数全部时String类型 所以必须进行转换
//这里只将参数转换为Int 并不做其他考虑
argument[i] = Convert ToInt (args[i]);
object value = method Invoke(Activator CreateInstance(type true) argument);
if (value != null) context Response Write(value ToString());
else context Response Write( error );
//处理结束
context Response End();
客户端Javascript代码
function CallMethod(AssemblyName MethodName Argus)
var args = ;
for(var i= ;i
args += Argus[i] + ;
if(args length> ) args = args substr( args length );
var xml = new ActiveXObject( Microsoft XMLHTTP );
url = AJAX/AJAX czhenq?as= + AssemblyName + &me= + MethodName + &ar= + args;
xml open( POST url false);
xml send();
alert(xml responseText);
一个简单的AJAX框架已经实现 现在写段代码来测试
使用自己的AJAX
新建一个网站 并应用刚才你编写的HttpHandler 并在网站的nfig中注册你的HttpHandler 说明那些请求将使用你编写的Handler来处理 下面的内容说明:所有以 czq 结尾的请求 都将使用 Czhenq HttpHandlerFactory 来处理
type= Czhenq HttpHandlerFactory Czhenq AJAX />
添加一个web页面 将刚才的脚本拷贝到页面中 并添加一个你要调用的方法
private string Add(int i int j)
return TextBox Text;
在页面中放置一个HiddenField控件 命名为AssemblyName 并在Page_Load中添加如下代码
string assemblyName = Czhenq AJAX Class Encode(
typeof(_Default) AssemblyQualifiedName);
AssemblyName Value = assemblyName;
var assemblyName = document getElementById( AssemblyName );
var argus = new Array();
argus push( );
argus push( );
CallMethod(assemblyName Add argus)
cha138/Article/program/net/201311/13983
相关参考
ASP.NET中的自定义脚本回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET客户
跳出封装剖析ASP.NET脚本回调的原理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET2.0的跨页回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在ASPNET中跨
知识大全 如何由ASP.NET 1.1移植到ASP.NET 2.0
如何由ASP.NET1.1移植到ASP.NET2.0 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
自带打包工具打包Asp.NetWeb应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 打开
用ASP.Net中的自带类进行MD5加密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ASP.NET入门教程 7.2 ASP.NET 2.0的数据控件
ASP.NET入门教程7.2ASP.NET2.0的数据控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[2]
ASP.NET入门教程10.5.3ASP.NET2.0的新特性[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[1]
ASP.NET入门教程10.5.3ASP.NET2.0的新特性[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快
ASP.NET2.0的编译模型 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 支持两种编译模型(