准備技術:
1.Asp.net常規開發技術;
2.了解控件開發的呈現、屬性狀態簡單原理。
內容:
數據回傳就是說客戶端將數據回交給服務器,然後asp.net模型將會將處理後的數據回傳到表單中去。如果開發的控件需要回傳的話,就必須要去繼承於IPostBackDataHandler接口。 繼承IPostBackDataHandler之後我們一般需要去重寫兩個方法:
1.LoadPostData().方法返回一個bool值,表示該控件的值是否發生改變(需要我們去判斷);
2.RaisPostDataChangeEvent().此方法是在LoadPostData方法返回true的時候去執行的。
一、LoadPostData方法
此方法的原型:LoadPostData(string postDataKey,System.Collections.Specialized.NameValueCollection postCollection)
參數postDataKey就是回傳控件的UniqueID,在客戶端表現為name屬性。postCollection就是回傳的數據值的結合。所以我們可以通過postCollection[postDataKey]來獲取本控制回傳的值,所以我們就可以來比較原來控件的值跟回傳的值,從而來確定LoadPostData方法返回true還是false。
要注意的一點是,我們回傳時需要name屬性,所以如果我們定義的控件要支持數據回傳的話,就必須要去添加屬性name。
二、RaisePostDataChangeEvent()方法
RaisePostDataChangeEvent方法一般是在LoadPostData返回True的是否才去執行。一般我們在此方法中去觸發一些事件,如:TextChanged。