aspx页面:
<div id="user">
<input type="text" value="hhkedang" maxlength="10" id="userid" />
<input type="button" value="试试" onclick="callServer()" /><div id="result"></div>
</div>
<script type="text/javascript">//客户端脚本
function huidiaofangfa(result)//这里接收服务端返回结果,并显示
{
document.getElementById("result").innerHTML=result;
}
</script>
下面是后台代码:
public partial class Default2 : System.Web.UI.Page, ICallbackEventHandler//继承接口 重要! { private string _arg =""; protected void Page_Load(object sender, EventArgs e) { string script = Page.ClientScript.GetCallbackEventReference(this, "canshu", "huidiaofangfa", "");//两个字符串 :参数,回调方法 Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "callServer", "\nfunction callServer(){\ndocument.getElementById(\"result\").innerHTML=\"正在检查 \"+document.getElementById(\"userid\").value+\" 的可用性,请稍候...\";\nvar canshu=document.getElementById(\"userid\").value;\n" + script + ";\n}", true); //这个是注册一个连接 后台的js 函数,主要负责,把客户端的参数发送并赋值,“canshu”,为“canshu”,赋值 } #region ICallbackEventHandler 接口的成员 string ICallbackEventHandler.GetCallbackResult()//返回客户端的方法 { System.Threading.Thread.Sleep(2000);
return _arg;//返回一个string RaiseCallbackEvent方法赋值
} void ICallbackEventHandler.RaiseCallbackEvent(string clientArgment)//接口成员,接受客户端参数的方法! { if (clientArgment.Equals("hhkedang")) _arg = string.Format("<span class=\"bad\">很遗憾,{0} 已被使用。</span>", clientArgment); else _arg = string.Format("<span class=\"ok\">恭喜您,{0} 可以注册。</span>", clientArgment); } #endregion