JS+ICallBackEventHandler体验简单刷新

mac2022-06-30  35

  杯具,昨天准备写的东西,电脑一直莫名其妙断电,郁闷好半天。废话少说,进入正题吧。

  现在一般我们需要无刷新时第一想到的就是用Jquery+ashx做,勿庸置疑,JQ的出现大大简化了操作,使得我们不用像之前那样写N长的JS代码来实现,并且使得一部分的代码再度分离,也许有的人觉得爽,但有的人就不一定了。针对于感觉不爽的人也许用的另一种方法,我现在也来做个Demo让大家讨论下。

  这种方法就是实现MS的一个接口ICallBackEventHandler,个人觉得他的好处是像普通的功能一样,不论是否刷新,所有的操作功能都写在aspx.cs文件中更符合我们平时的写代码的习惯,并且我个人也不喜欢去新建那么多的ashx文件。

前台JS部分

<script type="text/javascript" language="javascript">        function CallServer(operate) {            var param1 = $("#title").value;            var param2 = $("#name").value;            var sendParams=param1+"$"+param2+"$"+operate;    //设置param1,param2为要传递的参数,operate为所要做的操作注意:这里传递多个参数最好以比较特殊的字符进行分隔,以免和参数发生冲突,并且方便在后台方便解析

    //GetCallbackEventReference函数在客户端注册一个引用,表示该函数被调用时将会启用对一个服务器事件的客户端回调,参数:1、Page类;2、参数;3、接收参数的JS函数;               4、一般为null就可以了;详细说明参照http://msdn.microsoft.com/zh-cn/library/ms153103(VS.90).aspx            <% =this.ClientScript.GetCallbackEventReference(this,"sendParams","Receive",null) %>

             }

    //定义接收返回值的函数             function Receive(ReceivedValue)             {                $("#temp").html(ReceivedValue);  //相应的操作显示             }</script>

后台相应的aspx.cs文件

 

1 /// <summary> 2 /// 注意:这里需要实现ICallbackEventHandler接口 3 /// </summary> 4   public partial class _Default : System.Web.UI.Page,ICallbackEventHandler 5 { 6 protected void Page_Load( object sender, EventArgs e) 7 { 8 } 9 10 11 12 #region ICallbackEventHandler 成员 13 /// <summary> 14 /// 返回处理后的数据 15 /// </summary> 16 /// <returns></returns> 17   // 返回操作后的数据,最好返回JSON格式,以便解析和调用 18 private static string value = string .Empty; 19 string ICallbackEventHandler.GetCallbackResult() 20 { 21 return value; 22 } 23 /// <summary> 24 /// 处理客户端提交的数据 25 /// </summary> 26 /// <param name="eventArgument"> 接收的前台的参数 </param> 27 void ICallbackEventHandler.RaiseCallbackEvent( string eventArgument) 28 { 29 string [] array = eventArgument.Split( ' $ ' ); 30 // 操作 31 string operation = array[array.Length - 1 ]; 32 switch (operation) { 33 case " Add " : 34 value = Add(); 35 break ; 36 case " Del " : 37 value = Del(); 38 break ; 39 } 40 41 } 42 43 #endregion 44 #region 你需要的逻辑操作 45 string Add() 46 { 47 return " add " ; 48 } 49 string Del() 50 { 51 return " del " ; 52 } 53 #endregion

 

 

如果有其它好方法,希望可以交流下!!

转载于:https://www.cnblogs.com/netDream/archive/2010/05/14/ICallBackEventHandler.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)