您的位置:首页 > 编程语言 > ASP

aspxasp.net ICallbackEventHandler实现免刷新【客户端回调】

2015-08-07 16:38 661 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: