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

asp.net2.0客户端回调的使用

2005-08-29 15:25 381 查看
asp.net2.0有一个功能是在客户端“很隐秘地”执行服务器端的代码,再从服务器端返回一个结果给客户端,从而达到执行了后台代码却没有刷新页面的效果。
首先,要实现的页面或者控件必须要继承ICallbackEventHandler接口,在vs2005七月份的beta版里,这个接口定义了两个方法,PrepareCallbackEvent和RenderCallbackResult,前者用来接收客户端传过来的参数,后者返回参数给客户端。以前的版本只有一个方法RaiseCallbackEvent,似乎也能很好的实现,不知道拆成两个方法是何用意。
部分服务器端代码如下:
public partial class CallBack_BtCall : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
protected string EventArgument = "";
public void PrepareCallbackEvent(string eventArgument)
{
this.EventArgument = eventArgument;
}
public string RenderCallbackResult()
{
return "客户端在[" + DateTime.Now.ToString() + "]传送来 [" + this.EventArgument + "].";
}
protected void Page_Load(object sender, EventArgs e)
{
//客户端脚本函数的定义
//该函数CallTheServer通过传递参数param到服务器端
string callbackRef = Page.ClientScript.GetCallbackEventReference(this, "param", "handleResultFromServer", "context");
String callbackScript = "function CallTheServer(param, context)" + "{ " + callbackRef + "} ;";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallTheServer", callbackScript, true);

//客户端的函数调用
this.Button1.Attributes.Add("OnClick", "javascipt:CallTheServer(document.getElementById('Text1').value,'');");
}

}

部分客户端代码如下:
<script language=javascript>
function callToServer()
{
//param 是传递给服务器端的参数
var param = document.getElementById("Text1").value;
var context = "";
CallTheServer(param,context);

}
//处理服务器端传回来参数后的函数,result是传回来的参数
function handleResultFromServer(result, context)
{
document.getElementById("Text2").value = result;
}

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: