ICallbackEventHandler 前后台无刷新交互

第一步,在VS2008中建立一个新的WEB窗件。
第二步,在ASPX中,放上一段HTML代码(如下):

<body>
<form id="form1" runat="server">
<div>
<button οnclick="CallServer()">CallServer</button>
</div>
</form>
</body>

<body> <form id="form1" runat="server"> <div> <button οnclick="CallServer()">CallServer</button> </div> </form> </body>


第三步,然后在<HEAD></HEAD>中放入一段JavaScript脚本:

<script type="text/javascript">
function CallServer()
{
var product = "测试";
<%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
}
function ReceiveServerData(rValue)
{
alert(rValue);
}
</script>


第四步,在此ASPX的后台CS代码中,继承ICallbackEventHandler接口,并实现接口中的两个方法:
ICallbackEventHandler.GetCallbackResult()

ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)

第五步,增加一个变量CallBackValue,并修改接口的两个方法为:

private string CallBackValue = string.Empty;
string ICallbackEventHandler.GetCallbackResult()
{
return CallBackValue + ",ok";
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
this.CallBackValue = eventArgument;
}

第六步,运行,界面上会出现一个按钮,点击后,会将“测试”这个字符串传至后台,后台C#代码将字符串加上“,OK”后返回给客户端的JavaScript代码,并显示。

以上六步,就可以实现无刷新回调了。现在,我们来分析一下几段代码。
先看第三步中的JavaScript代码,其中的CallServer()方法中进行了回调,回调的语句为:

<%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;

里面四个参数中第二个参数指定将product这个JavaScript中的字符串变量传回后台,第三个参数指定了从后台返回时接收返回信息的JavaScript方法ReceiveServerData(string Value)。

第五步中后台的两个方法,一个ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)用来接收前台JavaScript中传来的字符串变量,并赋值给内部变量this.CallBackValue,另一个方法ICallbackEventHandler.GetCallbackResult()将变更后的内部变量this.CallBackValue返回给前台JavaScript方法ReceiveServerData(string Value)。

调用的顺序是: (前台)CallServer() --> (后台)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) --> (后台)ICallbackEventHandler.GetCallbackResult() --> (前台)ReceiveServerData(string Value)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值