ICallbackEventHandler 前后台无刷新交互
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
第一步,在VS中建立一個(gè)新的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 = "測(cè)試";
<%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
}
function ReceiveServerData(rValue)
{
alert(rValue);
}
</script>
第四步,在此ASPX的后臺(tái)CS代碼中,繼承ICallbackEventHandler接口,并實(shí)現(xiàn)接口中的兩個(gè)方法:
ICallbackEventHandler.GetCallbackResult()
???? 和
ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
第五步,增加一個(gè)變量CallBackValue,并修改接口的兩個(gè)方法為:
private string CallBackValue = string.Empty;
string ICallbackEventHandler.GetCallbackResult()
{
return CallBackValue + ",ok";
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
{
this.CallBackValue = eventArgument;
}
?第六步,運(yùn)行,界面上會(huì)出現(xiàn)一個(gè)按鈕,點(diǎn)擊后,會(huì)將“測(cè)試”這個(gè)字符串傳至后臺(tái),后臺(tái)C#代碼將字符串加上“,OK”后返回給客戶端的JavaScript代碼,并顯示。
???? 以上六步,就可以實(shí)現(xiàn)無(wú)刷新回調(diào)了。現(xiàn)在,我們來(lái)分析一下幾段代碼。
???? 先看第三步中的JavaScript代碼,其中的CallServer()方法中進(jìn)行了回調(diào),回調(diào)的語(yǔ)句為:
<%= ClientScript.GetCallbackEventReference(this, "product", "ReceiveServerData",null)%>;
?
里面四個(gè)參數(shù)中第二個(gè)參數(shù)指定將product這個(gè)JavaScript中的字符串變量傳回后臺(tái),第三個(gè)參數(shù)指定了從后臺(tái)返回時(shí)接收返回信息的JavaScript方法ReceiveServerData(string Value)。
???? 第五步中后臺(tái)的兩個(gè)方法,一個(gè)ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)用來(lái)接收前臺(tái)JavaScript中傳來(lái)的字符串變量,并賦值給內(nèi)部變量this.CallBackValue,另一個(gè)方法ICallbackEventHandler.GetCallbackResult()將變更后的內(nèi)部變量this.CallBackValue返回給前臺(tái)JavaScript方法ReceiveServerData(string Value)。
???? 調(diào)用的順序是: (前臺(tái))CallServer() --> (后臺(tái))ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) --> (后臺(tái))ICallbackEventHandler.GetCallbackResult() --> (前臺(tái))ReceiveServerData(string Value)。
轉(zhuǎn)載于:https://my.oschina.net/ind/blog/307054
總結(jié)
以上是生活随笔為你收集整理的ICallbackEventHandler 前后台无刷新交互的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 敏捷个人手机应用:如何使用时中法习惯
- 下一篇: 自己动手制作(DIY)一个Mini-Li