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>
首先,要实现的页面或者控件必须要继承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>
相关文章推荐
- 写了一个ASP.Net2.0中使用"客户端回调"实现无刷新例子
- asp.net2.0中使用客户端回调实现无刷新应用!
- asp.net2.0中的客户端回调的使用
- AJAX与callback的区别(续asp.net2.0客户端回调的使用)
- asp.net2.0中使用客户端回调实现无刷新应用!
- asp.net2.0中的客户端回调的使用
- AJAX与callback的区别(续asp.net2.0客户端回调的使用)
- asp.net2.0中使用客户端回调实现无刷新应用!
- AJAX与callback的区别(续asp.net2.0客户端回调的使用)
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(十四):ASP.NET2.0实现无刷新客户端回调的Callback机制及例子代码下载
- ASP.NET2.0实现无刷新客户端回调
- ASP.NET2.0实现无刷新客户端回调
- 使用AIDL,客户端调用和Service回调,以及一些需要注意的细节
- 使用asp.net 2.0 客户端回调功能显示后台处理进度
- Asp.Net2.0无刷新客户端回调
- Asp.Net2.0无刷新客户端回调
- ASP.NET2.0实现无刷新客户端回调
- Asp.Net2.0中TreeView使用javascript客户端实现选择节点联动的脚本
- Asp.Net2.0无刷新客户端回调
- Asp.Net2.0无刷新客户端回调