net 中 等同与ajax的效果 ICallbackEventHandler

更深入的参考与研究,可以看看以下的
http://msdn2.microsoft.com/zh-cn/library/ms178210%28vs.80%29.aspx http://tech.sina.com.cn/s/2006-04-20/1522911788.shtml  http://tech.sina.com.cn/s/2006-04-20/1522911789.shtml 

首先,它是建立在网页之上的。打开vs2005以上的版本,新建网站

 转载请注明 http://netsos.cnblogs.com/

1.在界面上拖放一个静态控件,button,在他的onclick事件上Callback  <button  onclick="Callback();" >测试一下ajax效果</button>

 转载请注明出处 【http://netsos.cnblogs.com】 

 2.写上刚才的Callback函数 在页面的javascript中

在javascript执行的代码
 1 <script type="text/javascript">
 2 //onclick的事件开始啦!
 3 function Callback()
 4 {
 5     //args 是一个变量,一会进行异步时会用到
 6      var args="网站上你要进行ajax,异步进行的变量,最后传入后台进行接收,处理";
 7    //args变量现在用到了,ReceiveData是返回给客户端,即是用户看的结果,一会儿再说
 8    <%=ClientScript.GetCallbackEventReference(this,"args","ReceiveData",null)%>
 9 }
10 //这个是最后执行的,就是上面所说的
11 //这里的data是后台,我们看不到的,服务端处理过之后,返还的结果 
12 function ReceiveData(data)
13 {
14    //这里可以自己根据情况写
15     alert(data);
16 }
17 
18 </script>

3.咱们接着进入后台,看看后台的接收是怎么样的

 在写之前,先把准备工作做好,先实现 ICallbackEventHandler这个接口

他会自动生成自己内部的方法

 转载请注明 http://netsos.cnblogs.com/ 

代码
 1 #region ICallbackEventHandler 成员
 2 
 3     public string GetCallbackResult()
 4     {
 5         return "";
 6     }
 7 
 8 
 9     public void RaiseCallbackEvent(string eventArgument)
10     {
11         
12     }
13 
14     #endregion

4.定义一个全局的变量 进行处理

 转载请注明出处 【http://netsos.cnblogs.com】 

 

代码
 1 private string CallServerData=string.Empty;
 2 #region ICallbackEventHandler 成员
 3 
 4    //他会把传过来的结果,作为刚才ReceiveData函数中的参数 ReceiveData(data),
 5     //相当于data==GetCallbackResult()
 6     public string GetCallbackResult()
 7     {
 8         return CallbackVaue + "ok!";
 9     }
10 
11 
12     public void RaiseCallbackEvent(string eventArgument)
13     {
14         this.CallServerData= eventArgument;
15         //记住这里的eventArgument就是刚才在前台的args变量的值
16        //接收完 args--->eventArgument---->CallServerData
17     }
18 
19     #endregion


最后在总结一下

 整个流程调用的顺序是: (前台)Callback() -->  

                                                                  (后台)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) -->

                                                                          (后台)ICallbackEventHandler.GetCallbackResult() -->

         (前台)ReceiveServerData(string Value)。


 

 转载请注明出处【http://netsos.cnblogs.com】


 

posted @ 2010-05-14 15:05  hevily  Views(443)  Comments(1Edit  收藏  举报