通过使用asp.net自带的回调技术可以实现与ajax类似的无刷新效果,常见的比如验证用户名是否存在等
使用方法:
前台:
1.当文本框失去焦点是出发一个js,并传递值
<body>
<form id="form1" runat="server">
<div>
<input type="text" οnblur="clientCallBack (this.value)" />
<asp:Label ID="lblContent" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
2.编写js代码
<script type="text/javascript">
//失去焦点时要调用的函数
function clientCallBack (myText) {
//这里是关键,这个方法将前台的值传到后台,并告诉后台在回调结束时调用getResult方法
<%= ClientScript.GetCallbackEventReference (this,"myText","getResult","null") %>
}
//回调结束前台显示值的方法
function getResult(myResult)
{
document.getElementById("lblContent").innerHTML=myResult;
}
</script>
后台:
1.必须实现 ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
}
string result = "";
#region ICallbackEventHandler 成员
//将后台结果返回给前台脚本的方法
public string GetCallbackResult()
{
return result;
}
//处理回调事件的方法,eventArgument为前台传入的参数
public void RaiseCallbackEvent(string eventArgument)
{
if (eventArgument.ToLower() == "admin")
{
result = eventArgument;
}
else
{
result = "不OK";
}
}
#endregion
}