ICallbackEventHandler 前后台无刷新交互
為什么80%的碼農都做不了架構師?>>> ??
第一步,在VS中建立一個新的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)。
轉載于:https://my.oschina.net/ind/blog/307054
總結
以上是生活随笔為你收集整理的ICallbackEventHandler 前后台无刷新交互的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏捷个人手机应用:如何使用时中法习惯
- 下一篇: sql常用函数总结