在最近的項目實現中遇到了一個問題前端
在數據處理的過程當中,須要請求獲取數據,再作處理以後,能夠在頁面及時獲取數據web
開始時,首先想到的到是寫Ajax請求,但在作後續數據處理後,處理獲取數據等操做,感受實現起來至關麻煩函數
後來選擇使用的回調的方式實現測試
ICallbackEventHandler 接口適用於回調處理的操做,後來通過了解,才知道之前常用的控件GridView、DetailsView、TreeView都是實現了這個接口(>_<)ui
ICallbackEventHandler接口封裝了兩個方法:this
RaiseCallbackEvent(string eventArgument)//前端腳本觸發後,自動執行該方法 spa
GetCallbackResult()//回調函數,獲取或操做數據 code
應用示例:orm
1 public partial class CallBackTest : System.Web.UI.Page,ICallbackEventHandler 2 { 3 public string callBackEventHandler = ""; 4 protected void Page_Load(object sender, EventArgs e) 5 { 6 callBackEventHandler = ClientScript.GetCallbackEventReference(this, "arg", "rServer", "context"); 7 } 8 9 protected static string _result = ""; 10 11 public string GetCallbackResult() 12 { 13 return _result; 14 } 15 16 public void RaiseCallbackEvent(string eventArgument) 17 { 18 string[] strDataList = eventArgument.Split('|'); 19 string[] strDataItem = strDataList[4].Split('='); 20 string name = strDataItem[0]; 21 string value = strDataItem[1]; 22 _result = string.Format("Name:{0},Vlaue:{1}", name, value); 23 } 24 }
JSblog
1 function rServer(arg,context) { 2 //這個是回調成功後的處理函數 3 alert(arg); 4 } 5 function raiseEvent(arg, context) { 6 //調用函數 7 var data ="測試數據=1|測試數據=2|測試數據=3|測試數據=4|測試數據=5"; 8 arg = data; 9 <%= callBackEventHandler %> 10 }
更多應用示例
https://msdn.microsoft.com/zh-cn/library/system.web.ui.icallbackeventhandler(v=vs.110).aspx