.NET4.0 用户控件的概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.0 用户控件的概述
用户控件是页面的一段,包含了静态HTML代码和服务器控件。其优点在于一旦创建了一个用户控件,可以在同一个应用的多个页面中重用。并且,用户可以在Web用户控件中,添加该控件的属性、事件和方法。
1.什么是用户控件
用户控件(后缀名为.ascx)文件与网页窗体(后缀名为.aspx)文件相似。就像网页窗体一样,用户控件由用户接口部分和控制标记组成,而且可以使用嵌入脚本或者.cs代码后置文件。用户控件能够包含网页所能包含的任何东西,包括静态HTML内容和控件,它们也作为页面对象(Page Object)接收同样的事件(如Load和PreRender),也能够通过属性(如Application,Session,Request 和Response)来展示内建对象。
用户控件使程序员能够很容易地跨Web应用程序划分和重复使用公共UI功能。与窗体页相同,用户可以使用任何文本编辑器创作用户控件,或者使用代码隐藏类开发用户控件。
此外,用户控件可以在第一次请求时被编译并存储在服务器内存中,从而缩短以后请求的响应时间。与服务器端包含文件(SSI)相比,用户控件通过访问由提供的对象模型支持,使程序员具有更大的灵活性。程序员可以对在控件中声明的任何属性进行编程,而不只是包含其他文件提供的功能,这与其他任何服务器控件一样。
此外,可以独立于包含用户控件的窗体页中除该控件以外的部分来缓存该控件的输出。这一技术称作片段缓存,适当地使用该技术能够提高站点的性能。例如,如果用户控件包含提出数据库请求的服务器控件,但该页的其余部分只包含文本和在服务器上运行的简单代码,则程序员可以对用户控件执行片段缓存,以改进应用程序的性能。
用户控件与普通网页页面的区别是:
●用户控件开始于控件指令而不是页面指令。
●用户控件的文件后缀是.ascx,而不是.aspx。它的后置代码文件继承于
erControl类.事实上,UserControl类和Page类都继承于同一个
TemplateControl类,所有它们能够共享很多相同的方法和事件。
●没有@Page指令,而是包含@Control指令,该指令对配置及其他属性进行定义。
●用户控件不能被客户端直接访问,不能作为独立文件运行,而必须像处理任何控件一
样,将它们添加到页中。
●用户控件没有html、body、form元素,但同样可以在用户控件上使用HTML元素和
Web控件。
用户可以将常用的内容或者控件以及控件的运行程序逻辑,设计为用户控件,
然后重复使用,例如网页上的导航栏,几乎每个页都需要相同的导航栏,这时可以将其设计为用户控件,在多个页中使用。如果网页内容需要改变,只需要修改用户控件中的内容即可。
总之,对于页面上重复使用的元素,如导航,站内搜索,用户注册和登录等,都可以将其代码封装到Web用户控件中,以减少代码量。此外,使用用户控件的高速缓存功能,可以提高页面的性能,所以母板页其实就是一种用户控件。
2.用户控件与自定义控件的异同
对比用户控件和自定义控件,很多开发人员认为用户控件更加容易开发。的确,在创建用户控件要比创建自定义控件方便很多,因为可以重用现有的控件。用户控件使创建具有复杂用户界面元素的控件极为方便。
用户控件是能够在其中放置标记和Web服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。用户控件更适合创建内部的应用程序特定的控件,如登录控件会在该项目中经常使用,所以创建用户控件能够极快的提高应用程序开发。
而自定义控件通常应用到更适合创建通用的可再分发的控件,并且自定义控件是编写的一个类,此类从Control或WebControl派生。
在程序开发过程中,如何判断使用Web用户控件或者使用自定义控件,先来了解两种类型之间的区别,如表8-1所示。
表8-1 两类控件的区别