杯具,昨天准备写的东西,电脑一直莫名其妙断电,郁闷好半天。废话少说,进入正题吧。
现在一般我们需要无刷新时第一想到的就是用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上百实例源码以及开源项目