ASP.NET2.0自带的ClientCallback
2006-08-23 11:36
162 查看
现在AJAX很火,不要忘记ASP.NET2.0自带的ClientCallback,也是非常好用!
现在我来讲一讲ClientCallback简单实现:
1.首先在aspx.cs文件Page类增加ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
ICallbackEventHandler接口在ClientCallback非常重要的,我们来看一下ICallbackEventHandler接口到底有什么东西:
名称 说明
string GetCallbackResult() 返回以控件为目标的回调事件的结果。
void RaiseCallbackEvent(string eventArgument) 处理以控件为目标的回调事件。eventArgument参数:表示要传递到事件处理程序的事件参数。
2.要实现脚本回调当然要写脚本:
//触发事件js
string cbref = Page.ClientScript.GetCallbackEventReference(this, "arg", "JSCallback", "context");
string cbScr = string.Format("function UseCallBack(arg, context) {{ {0}; }} ", cbref);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallBack", cbScr, true);
这段代码是通过代码RegisterClientScriptBlock设置触发脚本回调事件函数、回调函数、异常处理函数。UseCallBack(arg, context)函数: 触发服务端事件函数; arg是要传递到事件处理程序的事件参数,context是上下文参数(很少用到,可以在下面JSCallback回调函数中得到此值,但我在服务端得不到此值,请高手解答)
//回调js
string context1 = "<script type=\"text/javascript\">function JSCallback(arg, context) { document.forms[0].TextBox1.value = arg; window.alert(context); }</script>";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "JSCallback", context1);
这段代码是通过代码RegisterClientScriptBlock注册回调后的js,也可以直接写到网页里。回调js的用处:
JSCallback(arg, context) 函数: js里JSCallback函数是处理服务端返回的参数(例如:返回xml参数,经过处理后显示下拉框里)。
ClientCallback运行流程:
当页面执行UseCallBack(arg, context),就自动到服务端运行RaiseCallbackEvent(string eventArgument),然后是GetCallbackResult(),最后执行页面JSCallback(arg, context) 函数。
3.选择一个触发事件的条件:
就是让页面执行触发服务端事件函数。例如:Button2.Attributes.Add("onclick", "UseCallBack('GYF','GYF2');");
哈哈,这样实现了无刷新了,很简单吧!本人写作水平很有限。
详细看代码:代码下载
现在我来讲一讲ClientCallback简单实现:
1.首先在aspx.cs文件Page类增加ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
ICallbackEventHandler接口在ClientCallback非常重要的,我们来看一下ICallbackEventHandler接口到底有什么东西:
名称 说明
string GetCallbackResult() 返回以控件为目标的回调事件的结果。
void RaiseCallbackEvent(string eventArgument) 处理以控件为目标的回调事件。eventArgument参数:表示要传递到事件处理程序的事件参数。
2.要实现脚本回调当然要写脚本:
//触发事件js
string cbref = Page.ClientScript.GetCallbackEventReference(this, "arg", "JSCallback", "context");
string cbScr = string.Format("function UseCallBack(arg, context) {{ {0}; }} ", cbref);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UseCallBack", cbScr, true);
这段代码是通过代码RegisterClientScriptBlock设置触发脚本回调事件函数、回调函数、异常处理函数。UseCallBack(arg, context)函数: 触发服务端事件函数; arg是要传递到事件处理程序的事件参数,context是上下文参数(很少用到,可以在下面JSCallback回调函数中得到此值,但我在服务端得不到此值,请高手解答)
//回调js
string context1 = "<script type=\"text/javascript\">function JSCallback(arg, context) { document.forms[0].TextBox1.value = arg; window.alert(context); }</script>";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "JSCallback", context1);
这段代码是通过代码RegisterClientScriptBlock注册回调后的js,也可以直接写到网页里。回调js的用处:
JSCallback(arg, context) 函数: js里JSCallback函数是处理服务端返回的参数(例如:返回xml参数,经过处理后显示下拉框里)。
ClientCallback运行流程:
当页面执行UseCallBack(arg, context),就自动到服务端运行RaiseCallbackEvent(string eventArgument),然后是GetCallbackResult(),最后执行页面JSCallback(arg, context) 函数。
3.选择一个触发事件的条件:
就是让页面执行触发服务端事件函数。例如:Button2.Attributes.Add("onclick", "UseCallBack('GYF','GYF2');");
哈哈,这样实现了无刷新了,很简单吧!本人写作水平很有限。
详细看代码:代码下载
相关文章推荐
- ASP.NET2.0自带的ClientCallback
- [菜鸟自学过程] ASP.NET2.0 ClientCallback脚本回调
- ASP.NET2.0 ClientCallback脚本回调 [转]
- ASP.NET2.0:Ilungasoft.Framework.Web之基于Callback的无刷新上传进度条控件[带源码]
- Apache自带FTPClient下载文件
- 农国苏:asp.net在Client端使用另一种异步技术CallBack (完善中……)
- Client端异步Callback实现的原理
- ASP.NET2.0下微软自带的数据挖掘展现控件
- 深度解析Asp.Net2.0中的Callback机制
- ASP.NET2.0中的Callback机制
- ASP.NET2.0实现页面无刷新CallBack的一种方法
- [转载]:ASP.NET 2.0 Client Callback 浅析
- mysql自带测试用例集mysql_client_test的使用
- ASP.NET2.0中的ClientScriptManager类用法—如何添加客户端事件
- 深度解析Asp.Net2.0中的Callback机制
- (续上)ASP.NET2.0: Ilungasoft.Framework.Web之基于Callback的无刷新上传进度条控件[带源码]
- C# VS2010中,用微软自带的System.Data.OracleClient来连接Oracle数据库
- ASP.NET2.0实现页面无刷新CallBack
- DotNetNuke自带的一个文档DotNetNuke_ClientAPI-MaxMin的翻译
- 深度解析Asp.Net2.0中的Callback机制