最近一直想用ajax作點什麼。但是又不想用ajax.dll,今天遇然發現了一個Dotnet自己帶的一個輕量級ajax,其實所謂輕量級只是在網上找到的一個形容詞而以,我也不知道大至的說法。
ICallbackEventHandler介面,可以直接實現ajax的無重新整理回調功能。該介面有兩個方法。RaiseCallbackEvent和GetCallbackResult。
大至使用方法如下:
Page_Load中需要使用以下代碼
string cbStrScript=Page.ClientScript.GetCallbackEventReference(this,"RaiseCallbackEvent的參數名","用戶端function名稱","用戶端function指令碼");
(重載)string cbStrScript=Page.ClientScript.GetCallbackEventReference(this,"RaiseCallbackEvent的參數名","用戶端function名稱","用戶端function指令碼","出錯時引用的function名",同步或非同步設定的bool值);
用戶端向伺服器請求的function指令碼可以為以下方式產生:
string cbScript="function callServer(RaiseCallbackEvent的參數名,context){"+cbStrScript+"}"
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"用戶端向伺服器請求的function名稱,即:callServer","用戶端向伺服器請求的function指令碼,即:字串cbScript的內容",是否添加指令碼標記-true);
以上為ICallbackEventHandler介面的使用部份。
以下為ICallbackEventHandler介面的實現。
public void RaiseCallbackEvent(String eventArgument)
{
接收到用戶端的內容(eventArgument),並處理代碼
}
public string GetCallbackResult()
{
向用戶端返回結果的處理代碼
}
而用戶端的使用則為直接引用
(發送請求)callServer("發送到伺服器端的內容","發送前要啟動並執行指令碼,也可為空白");
(引用回調)
function 在GetCallbackEventReference設定的用戶端function名稱(arg, context)
{
ary為伺服器端GetCallbackResult方法return的內容
context目前我還不知道返回的是什麼..
}
以上存屬本人記憶使用,如果有興趣的人可以直接在SDK2.0內搜尋 ClientScriptManager.GetCallbackEventReference 方法,裡面會有更詳細的代碼。