以前使用无刷,只有两种办法,一种使用JS,另一种则使用AJax,使用起比较方便,但与后台的交互不是很好,直到我今天发现ClientScript.GetCallbackEventReference,才发现asp.net真正的强大之处,下面我就来简单介绍一下这个方法的使用
首先,要使用这个方法,必有继承一个接口:ICallbackEventHandler,
接口里面两个方法如下:
// 摘要:
// 返回以控件为目标的回调事件的结果。
//
// 返回结果:
// 回调的结果。
string GetCallbackResult();
//
// 摘要:
// 处理以控件为目标的回调事件。
//
// 参数:
// eventArgument:
// 一个字符串,表示要传递到事件处理程序的事件参数。
void RaiseCallbackEvent(string eventArgument);
看说明很详细,我们的页面里面必有实现这个方法与前台交互,这下就方便了呀!下面再介绍一下ClientScript.GetCallbackEventReference用法,这个方法是在前台实现,看代码比较清楚:
<script type="text/javascript">
//需要调用这个方法启用后台方法
//arg与context为前台需要传递给后台的参数,好好利用吧
function CallServer(arg, context)
{
//this不用说了
//arg是后台能接收到的方法,也是后台返回来的值
//ReceiveServerData为后台执行完成后,前台执行的方法
//context参数原封不动传给ReceiveServerData
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;
}
//这个方法就是你要执行的前台操作,可以返回结果,也可以改变控件状态,自己喜欢吧~
function ReceiveServerData(result, context)
{
...
}
</script>
有了这两个方法之后,就可以大做文章了呀~~你的无刷是不是变得简单了呢?下面拿一下两级下拉的实例给大家参考一下吧~