国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.net延遲加載的一般實現(xiàn)

2024-07-10 13:11:45
字體:
供稿:網(wǎng)友
 

本文對延遲加載在常用控件的實現(xiàn)做簡單的描述。

一、在界面第一次顯示時加載
最簡單的延遲加載可以通過控件第一次顯示時加載數(shù)據(jù),例如你有很多的頁簽,只有用戶切換到這個頁簽時,才會加載數(shù)據(jù)。
 在.net的control中提供setvisiblecore虛方法,當檢測value是true且第一次調(diào)用此方法時,調(diào)用延遲加載。但是我并不推薦這個方法,因為你有更好的地方。
- 如果你的控件繼承自form或者usercontrol,建議重載onload;
- 如果繼承自control,可以重載oncreatecontrol。
下面是延遲加載數(shù)據(jù)的例子:
    public class mytabpage : tabpage {
        protected override void oncreatecontrol() {
            base.oncreatecontrol();

            string oldtext = this.text;
            this.text = "loading..";

            //todo:在這里調(diào)用加載數(shù)據(jù)的方法

            this.text = oldtext;
        }
    }
二、樹控件在第一次展開時加載
treeview因為所有的節(jié)點并不是繼承自control,所以不能使用上面的方式,但是treeview提供了onbeforeexpand虛方法,最簡單的辦法是在你打算實現(xiàn)延遲加載的節(jié)點加入一個是否已經(jīng)加載的標記,當?shù)谝淮握归_時,檢測這個標記。
必須記住你的延遲加載節(jié)點在根位置是不能收到這個事件的。

三、在表格中延遲加載。
在windows程序中,有的使用分頁的方式實現(xiàn)延遲加載,但這種方式的用戶體驗非常的糟糕。如果你希望仍然使用滾動條的話,可以自己實現(xiàn)ibindlist接口,內(nèi)部持有一個數(shù)據(jù)的id列表,在表格詢問數(shù)據(jù)時,才到數(shù)據(jù)庫加載數(shù)據(jù),通常的表格控件都能夠很好的工作。
但這里有個應(yīng)該注意的地方,例如用戶按下pagedown時,表格控件連續(xù)的調(diào)用獲取數(shù)據(jù)方法,如果每次請求都去調(diào)用數(shù)據(jù)庫,將會很低的性能,應(yīng)該讓你的程序“預(yù)知”到可能要讀下50筆數(shù)據(jù)了,所以一次性多讀50條就可以。
這種方法遇到表格排序的時候就沒有辦法了。

以上是延遲加載技術(shù)的一般技術(shù),如果你有更好的方法,請指教。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 七台河市| 澎湖县| 揭阳市| 阿图什市| 云林县| 灯塔市| 恭城| 佛冈县| 克什克腾旗| 阿巴嘎旗| 安国市| 正宁县| 西城区| 财经| 昂仁县| 兴义市| 莱州市| 定远县| 大城县| 庐江县| 龙里县| 定襄县| 晋宁县| 达孜县| 阿坝| 房山区| 乾安县| 鹰潭市| 嘉祥县| 花垣县| 重庆市| 丰台区| 德江县| 沅陵县| 寿光市| 思南县| 盐津县| 渝中区| 平谷区| 黔东| 瓦房店市|