<form id="form1" runat="server"> <div> <!-- 此处事件为客户端事件,以实现无刷新效果 --> <input id="Text1" type="text" οnchange="CallServer(this.value,document.getElementById('mySpan'))" /><br /><br /> <!-- 利用参数context实现跟新span内容 --> <span id="mySpan"></span> </div> <mce:script type="text/javascript"><!-- //异步通信成功后,客户端执行的回调函数 function ReceiveServerData(result, context) { //弹出对话框 alert(result); //跟新span标签里的内容 context.innerHTML = result; } // --></mce:script> </form> //实现ICallbackEventHandler接口 public partial class Default3 : System.Web.UI.Page, ICallbackEventHandler { private string _callbackResult; protected void Page_Load(object sender, EventArgs e) { //GetCallbackEventReference:将根据实际参数传入返回实际的回调代码文本 //参数:control:可为任何实现ICallbackEventHandler接口的控件,此处为this表示执行回调的服务端控件是当前这个页面 // "arg":被传给RaiseCallbackEvent方法的eventArgument参数名 // "ReceiveServerData":回调成功后,处理服务器返回内容的客户端JS脚本函数名,此函数必须存在于执行页面,可包含2个参数 // "context":这个参数会被原封不动传给指定返回数据处理处理函数,因此次参数可以传很多杂项 //返回实际的回调代码文本:WebForm_DoCallback('__Page',arg,ReceiveServerData,context,null,false) //关于WebForm_DoCallback这个系统预定义JS方法,查看页面生成源码看到有 //<mce:script src="/WebSite4/WebResource.axd?d=QQPGrPqmPwBXsdKOUepw1A2&t=634042453451718750" mce_src="WebSite4/WebResource.axd?d=QQPGrPqmPwBXsdKOUepw1A2&t=634042453451718750" type="text/javascript"></mce:script> //然后顺藤摸瓜找到源码,搜一下,就有WebForm_DoCallback这个JS方法定义啦^0^ //WebForm_DoCallback方法通过POST方式完成客户端到服务器端异步通信,实现无刷新效果 string callback = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context"); //此处只是将上方的生成的回调函数实际代码字串封装到一个将创建的JS方法里,方便客户端控件激发事件时调用 string clientFun = "function CallServer(arg,context){" + callback + ";}"; //动态向客户端注入JS代码,此方法生成的JS函数紧跟在HTML代码中<form>后,记得要加true,否则将当做文本插入HTML中^0^ Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer",clientFun,true); } //实现ICallbackEventHandler接口处理客户端传送参数 public void RaiseCallbackEvent(string eventArgument) { if (eventArgument == "test") { _callbackResult = "(~o ̄▽ ̄)~o"; } else { _callbackResult = "╮(╯3╰)╭"; } } //实现ICallbackEventHandler接口服务器端返回响应结果 public string GetCallbackResult() { return _callbackResult; } }