网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用JavaScript打造搜索工具栏.
..Net2.0 使用ConfigurationManag.
.剖析ASP.NET2.0导航功能之控制地.
.最新版FreeTextBox(版本3.1.6)在.
.asp.net 2.0中gridview里嵌套dro.
.asp.net WebForm页面间传值方法.
.UNIX时间戳与.net日期类的转换 .
.Asp.Net小技巧之在client端调用s.
.数据库连接字在Web.config里的用.
.ASP.NET1.0/2.0里用DIV层元素弹出.
.ASP.NET中使用数据处理插入数据注.
.asp.net自动执行任务-解决应用池.
.ASP.net 验证码(C#).
.在ASP.NET Atlas中调用Web Servi.
.ASP.NET+Web服务实现软件共享.
.ASP.NET2.0中themes、Skins轻松实.
.Asp.net直接保存文件到客户端.
.使用PagedDataSource类实现DataL.
.保存图片流到数据库之后固定显示.
.开发手记之实现web.config的快速.

.net延迟加载的一般实现

发表日期:2006-2-14


本文对延迟加载在常用控件的实现做简单的描述。

一、在界面第一次显示时加载
最简单的延迟加载可以通过控件第一次显示时加载数据,例如你有很多的页签,只有用户切换到这个页签时,才会加载数据。
 在.NET的Control中提供SetVisibleCore虚方法,当检测value是true且第一次调用此方法时,调用延迟加载。但是我并不推荐这个方法,因为你有更好的地方。
- 如果你的控件继承自Form或者UserControl,建议重载OnLoad;
- 如果继承自Control,可以重载OnCreateControl。
下面是延迟加载数据的例子:
    public class MyTabPage : TabPage {
        protected override void OnCreateControl() {
            base.OnCreateControl();

            string oldText = this.Text;
            this.Text = "Loading..";

            //TODO:在这里调用加载数据的方法

            this.Text = oldText;
        }
    }
二、树控件在第一次展开时加载
TreeView因为所有的节点并不是继承自Control,所以不能使用上面的方式,但是TreeView提供了OnBeforeExpand虚方法,最简单的办法是在你打算实现延迟加载的节点加入一个是否已经加载的标记,当第一次展开时,检测这个标记。
必须记住你的延迟加载节点在根位置是不能收到这个事件的。

三、在表格中延迟加载。
在Windows程序中,有的使用分页的方式实现延迟加载,但这种方式的用户体验非常的糟糕。如果你希望仍然使用滚动条的话,可以自己实现IBindList接口,内部持有一个数据的ID列表,在表格询问数据时,才到数据库加载数据,通常的表格控件都能够很好的工作。
但这里有个应该注意的地方,例如用户按下PageDown时,表格控件连续的调用获取数据方法,如果每次请求都去调用数据库,将会很低的性能,应该让你的程序“预知”到可能要读下50笔数据了,所以一次性多读50条就可以。
这种方法遇到表格排序的时候就没有办法了。

以上是延迟加载技术的一般技术,如果你有更好的方法,请指教。

上一篇:asp.net开发常用技巧收集 人气:8785
下一篇:ASP.NET 中执行 URL 重写 人气:8605
浏览全部.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐