Asp.net中的ajax回调模式(ICallbackEventHandler)

客户端回调本质上就是指通过前端的客户端脚本向服务器端传递相应的数据参数,服务器端再以接受到的参数进行查询和处理,最后将结果回传到客户端进行显示。asp.net 2.0提供了实现无刷新回调的接口ICallbackEventHandler.为了实现客户端回调,你必须实现一个ICallbackEventHandler接口,该接口定义了两个方法法RaiseCallbackEvent和GetCallbackResult. RaiseCallbackEvent()从浏览器接受一个字符串作为事件参数,即该方法接受客户端JavaScript传递的参数,注意它是首先触发的。接下来触发的就是GetCallbackResult()方法,它将所得到的结果传回给客户端的JavaScript,JavaScript再将结果更新到页面。下面以实例说明:

 
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)using System;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Collections;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Configuration;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Data;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Linq;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web.Security;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web.UI;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web.UI.HtmlControls;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web.UI.WebControls;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Web.UI.WebControls.WebParts;
Asp.net中的ajax回调模式(ICallbackEventHandler)
using System.Xml.Linq;
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)
namespace Ajax
Asp.net中的ajax回调模式(ICallbackEventHandler)
{
Asp.net中的ajax回调模式(ICallbackEventHandler)    
/*ICallbackEventHandler接口封装了从客户端的JavaScript通过XmlHttp方式调用服务器端的代码,
Asp.net中的ajax回调模式(ICallbackEventHandler)     * 所以只要在页面中实现了这个接口,便可以无需要使用其它的Ajax框架
Asp.net中的ajax回调模式(ICallbackEventHandler)     * 或是自己动手写XmlHttp请求这两种方式实现异步回调,可以避免回发过程中带来的页面刷新,
Asp.net中的ajax回调模式(ICallbackEventHandler)     * 这样不但减少了页面刷新的延时而且服务端无需处理每次回发的大量视图状态(View State)信息,
Asp.net中的ajax回调模式(ICallbackEventHandler)     * 应用程序的整体性能会有很大的提高。
Asp.net中的ajax回调模式(ICallbackEventHandler)     
*/

Asp.net中的ajax回调模式(ICallbackEventHandler)    
public partial class AjaxCall : System.Web.UI.Page,ICallbackEventHandler
Asp.net中的ajax回调模式(ICallbackEventHandler)    
{
Asp.net中的ajax回调模式(ICallbackEventHandler)        
protected void Page_Load(object sender, EventArgs e)
Asp.net中的ajax回调模式(ICallbackEventHandler)        
{
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)        }

Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)        
string text = string.Empty;
Asp.net中的ajax回调模式(ICallbackEventHandler)        
/*ICallbackEventHandler 接口。
Asp.net中的ajax回调模式(ICallbackEventHandler)        继承这个接口需要实现两个方法RaiseCallbackEvent和GetCallbackResult,
Asp.net中的ajax回调模式(ICallbackEventHandler)        其中,RaiseCallbackEvent用来处理客户端提交的请求,RaiseCallbackEvente有一个string类型的参数,
Asp.net中的ajax回调模式(ICallbackEventHandler)        是客户端提交到服务器端的参数。而GetCallbackResult方法则负责把服务器端的处理结果返回到客户端。
Asp.net中的ajax回调模式(ICallbackEventHandler)        
*/

Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)       
//GetCallbackResult方法则负责把服务器端的处理结果返回到客户端。
Asp.net中的ajax回调模式(ICallbackEventHandler)
        public string GetCallbackResult()
Asp.net中的ajax回调模式(ICallbackEventHandler)        
{
Asp.net中的ajax回调模式(ICallbackEventHandler)            
return text;
Asp.net中的ajax回调模式(ICallbackEventHandler)        }

Asp.net中的ajax回调模式(ICallbackEventHandler)        
//RaiseCallbackEvent用来处理客户端提交的请求,RaiseCallbackEvente有一个string类型的参数,是客户端提交到服务器端的参数
Asp.net中的ajax回调模式(ICallbackEventHandler)
        public void RaiseCallbackEvent(string eventArgument)
Asp.net中的ajax回调模式(ICallbackEventHandler)        
{
Asp.net中的ajax回调模式(ICallbackEventHandler)            text 
=eventArgument+"---------"+DateTime.Now.ToLocalTime().ToString();
Asp.net中的ajax回调模式(ICallbackEventHandler)        }

Asp.net中的ajax回调模式(ICallbackEventHandler)        
Asp.net中的ajax回调模式(ICallbackEventHandler)    }

Asp.net中的ajax回调模式(ICallbackEventHandler)}

Asp.net中的ajax回调模式(ICallbackEventHandler)
 

前台代码如下:

 
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)<html xmlns="http://www.w3.org/1999/xhtml" >
Asp.net中的ajax回调模式(ICallbackEventHandler)
<head runat="server">
Asp.net中的ajax回调模式(ICallbackEventHandler)    
<title>AJAX回调模式</title>
Asp.net中的ajax回调模式(ICallbackEventHandler)    
<script type="text/javascript">
Asp.net中的ajax回调模式(ICallbackEventHandler)    
//回调函数
Asp.net中的ajax回调模式(ICallbackEventHandler)
    function receiveServerData(arg,context)
Asp.net中的ajax回调模式(ICallbackEventHandler)    
{
Asp.net中的ajax回调模式(ICallbackEventHandler)        document.getElementById(
"result").innerHTML=arg;
Asp.net中的ajax回调模式(ICallbackEventHandler)    }

Asp.net中的ajax回调模式(ICallbackEventHandler)    
/* 为了向服务器页发送回调和接收结果这两个功能,
Asp.net中的ajax回调模式(ICallbackEventHandler)    可以在客户端定义两个脚本函数来实现用ClientScriptManager类
Asp.net中的ajax回调模式(ICallbackEventHandler)    的GetCallbackEventReference方法在客户端注册一个向服务器端发送请求的函数。
Asp.net中的ajax回调模式(ICallbackEventHandler)    Page.ClientScript获得页面的ClientScriptManager引用,GetCallbackEventReference注册发送回调请求的函数。
Asp.net中的ajax回调模式(ICallbackEventHandler)    
*/

Asp.net中的ajax回调模式(ICallbackEventHandler)    
Asp.net中的ajax回调模式(ICallbackEventHandler)    
/*
Asp.net中的ajax回调模式(ICallbackEventHandler)      public string GetCallbackEventReference (Control control,string argument,string clientCallback,string context)
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)  参数 作用 
Asp.net中的ajax回调模式(ICallbackEventHandler)control 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。  
Asp.net中的ajax回调模式(ICallbackEventHandler)argument  从客户端脚本传递一个参数到服务器端的RaiseCallbackEvent 方法。  
Asp.net中的ajax回调模式(ICallbackEventHandler)clientCallback  一个客户端事件处理程序的名称,该处理程序接收服务器端事件返回的结果。 
Asp.net中的ajax回调模式(ICallbackEventHandler)context 启动回调之前在客户端的客户端脚本信息。脚本的结果传回给客户端事件处理程序。  
Asp.net中的ajax回调模式(ICallbackEventHandler)返回值 调用客户端回调的客户端函数的名称。 
Asp.net中的ajax回调模式(ICallbackEventHandler)
*/

Asp.net中的ajax回调模式(ICallbackEventHandler)    
function callServer(arg,context)
Asp.net中的ajax回调模式(ICallbackEventHandler)    
{
Asp.net中的ajax回调模式(ICallbackEventHandler)        
<%=ClientScript.GetCallbackEventReference(this,"arg","receiveServerData","context"%>;
Asp.net中的ajax回调模式(ICallbackEventHandler)    }

Asp.net中的ajax回调模式(ICallbackEventHandler)    
Asp.net中的ajax回调模式(ICallbackEventHandler)  
//---------------------------------------------  
Asp.net中的ajax回调模式(ICallbackEventHandler)
    function RServerData(arg,context)
Asp.net中的ajax回调模式(ICallbackEventHandler)    
{
Asp.net中的ajax回调模式(ICallbackEventHandler)       context.value
=arg;
Asp.net中的ajax回调模式(ICallbackEventHandler)    }

Asp.net中的ajax回调模式(ICallbackEventHandler)    
function Call(Input,context)
Asp.net中的ajax回调模式(ICallbackEventHandler)    
{   
Asp.net中的ajax回调模式(ICallbackEventHandler)        arg
=Input.value;
Asp.net中的ajax回调模式(ICallbackEventHandler)        
<%=ClientScript.GetCallbackEventReference(this,"arg","RServerData","context"%>;
Asp.net中的ajax回调模式(ICallbackEventHandler)    }

Asp.net中的ajax回调模式(ICallbackEventHandler)    
</script>
Asp.net中的ajax回调模式(ICallbackEventHandler)
</head>
Asp.net中的ajax回调模式(ICallbackEventHandler)
<body>
Asp.net中的ajax回调模式(ICallbackEventHandler)    
<form id="form1" runat="server">
Asp.net中的ajax回调模式(ICallbackEventHandler)
<input type="button" value="Submit" onclick="callServer()" />
Asp.net中的ajax回调模式(ICallbackEventHandler)   
Asp.net中的ajax回调模式(ICallbackEventHandler)
<div id="result">
Asp.net中的ajax回调模式(ICallbackEventHandler)
Asp.net中的ajax回调模式(ICallbackEventHandler)
</div>
Asp.net中的ajax回调模式(ICallbackEventHandler)    
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Asp.net中的ajax回调模式(ICallbackEventHandler)     
<input id="button" type="button" value="submit" onclick="Call(TextBox1,TextBox2)"/>
Asp.net中的ajax回调模式(ICallbackEventHandler)    
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
Asp.net中的ajax回调模式(ICallbackEventHandler)    
</form>
Asp.net中的ajax回调模式(ICallbackEventHandler)
</body>
Asp.net中的ajax回调模式(ICallbackEventHandler)
</html>

你可能感兴趣的:(callback)