用户控件和自定义控件的定义的区别
- 格式:doc
- 大小:12.74 KB
- 文档页数:2
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类,所有它们能够共享很多相同的方法和事件。
4.0 定义控件自定义控件与用户控件不同,自定义控件需要定义一个直接或间接从Control 类派生的类,并重写Render方法。
在.NET框架中,System.Web.UI.Control与System.Web.UI.WebControls.WebControl两个类是服务器控件的基类,并且定义了所有服务器控件共有的属性、方法和事件,其中最为重要的就是包括了控制控件执行生命周期的方法和事件,以及ID等共有属性。
1.创建项目使用自定义Label控件的代码,Web Control Library模板中默认包括该控件。
该控件是从Web Control类派生的,其行为与标准的Label控件相同,同时具有添加的属性将Text属性的值呈现为超级链接。
例如,在【文件】菜单中,执行【新建项目】命令,并弹出【新建项目】对话框,如图8-8所示。
在【模板】窗格中,选择Web选项,并在右侧选择【服务器控件】选项。
然后,将【名称】更改为Control,并单击【确定】按钮。
图8-8 自定义控件2.添加类控件在【解决方案资源管理器】中,右击项目文件,并执行【添加】|【新建项】命令,如图8-9所示。
图8-9 添加新项在弹出的【添加新项-Control】窗口中,选择【Visual C#项】模板,并选择【类】选项。
然后,修改【名称】为Address.cs,并单击【添加】按钮,如图8-10所示。
图8-10 添加类文件此时,在Address.cs文件中,添加一些地址的属性内容。
例如,城市名称、邮政编码、国籍等等。
现代码内容。
代码编写完成后,可以编译控件。
其实,编译控件的方法非常简单,如分别选择Address.cs和Custom.cs文件,并执行【生成】|【生成Control】命令,如图8-11所示。
图8-11 生成Control类3.将控件添加到工具箱生成Control类之后,可以将该类文件添加到工具箱中。
这样用户可以像使用工具栏中的控件一样,直接引用到窗体页中。
第 8 章 网页标准控件控件是一种类,绝大多数控件都具有可视的界面,能够在程序运行中显示出其外观。
利 用控件进行可视化设计既直观又方便,可以实现“所见即所得”(What You See Is What You Get, 简称为 WYSIWYG)的效果。
程序设计的主要内容是选择和设置控件以及对控件的事件 编写处理代码。
本章将介绍网页中最常用的几个标准网页控件。
目的在于学会这些常用控件的使用方 法。
其他控件在后续的章节中介绍。
8.1 网页中的控件类型 的类库中包括大量的控件,根据功能可以将它们分成以下几种类型。
标准控件:这些控件属于服务器控件。
除窗体页中常用的按钮、文本框等控件以外,还 有一些特殊用途的控件,例如,显示日历的控件等。
网页标准控件与 HTML 元素标记之间 不存在一对一的对应关系。
验证控件:用于检验用户的输入。
例如,验证是否缺少必须填入的字段;输入的数据格 式是否符合要求;输入的数据是否在指定的范围内等。
用户控件及自定义控件: 这些控件都是由程序设计者自行定义的控件, 是对系统控件的 扩展。
用户控件可以在项目内不同网页中重复使用,从而提高了程序设计的效率,同时还能 使各网页的显示风格一致。
HTML 控件:默认情况下它属于客户端(浏览器端)控件,但也可以将其转换成服务器端 控件。
每个控件对应于一个 HTML 元素的标记。
数据源控件 这类控件可以针对各种数据源实现数据绑定功能, 这包括微软的 SQL Server 和 Access, 以及其他关系型数据库、XML 文件和代码中实现的类。
数据视图控件 这类控件呈现为各种列表和表格,它们可以绑定到数据源以显示和编辑数据。
个性化控件 这类控件允许用户个性化地展示自己的站点, 包括重新调整网页本身等。
用户信息会被 自动地、透明地保存,并从一个会话持续到下一个会话。
登录控件和安全控件 这类控件实现站点中的普通登录功能,并维护用户的密码。
用户控件的应用本节主要学习用户控件的工作原理、如何创建用户控件以及如何向 网页添加用户控件的信息。
本节内容 用户控件概述如何:将Web 窗体页转换为 用户控件如何:在 网页中包括用户控件如何: 用户控件的实例,用实例详细说明如何使用用户控件用户控件概述在前面的教学示例中使用了,提供的标准控件。
毫无疑问,提供了相当丰富的控件。
但是,有时候这些控件还不能满足实际业务功能的要求。
在这种情况下,就可以使用开发具有所有自定义功能的新控件,本节我们学习如何在创建这些控件。
主要学习用户控件及应用。
自定义控件下节学习。
用户控件和自定义控件的优点在开始创建这些Web控件之前,有必要了解他们的用处。
正如类的构建是为了代码重用性,重用现有用户控件也很必要。
例如,如果不提供控件,那么即使是网页/窗体上的一个文本框也需要编码。
TexTbox控件虽小,但为网页开发人员节省了数小时的重复工作时间。
既然这样一种简单的控件能有如此强大的可重用效果,可以想象如果能够重用向DataGrid这样的复合控件,其帮助作用会有多大。
显而易见,用户控件和自定义控件有助于可视化能力和功能能力的可重用性,还有助于软件封装和分布这些功能。
用户控件是可重用的。
可重用控件用两种方式创建,第一个而且是最简单的方法就如同创建一个页面一样。
这种控件成为用户控件。
这些控件可简单地重用现有的 Web控件和HTML元素创建,生成一个ascx文件。
第二种方法是使用C#创建完成自定义的控件,这种控件叫自定义控件。
用户控件和自定义控件的差别●用户控件用.ascx文件表示。
它不是编译代码,便以随网页动态的进行,自定义控件被编译在DLL文件中,是编译代码。
●用户控件不会出现在工具箱中,而自定义控价会出现在工具箱中。
●用户控件支持缓存,而自定义控件不支持缓存。
●用户控件会对使用可视化设计工具的用户提供有限的支持,而自定义控件控件会提供全面的支持。
什么时候使用用户控件一般地,当内容在逻辑上可组合在一起,而且又有可能要在多处使用时,使用用户控件。
用户控件和自定义服务器控件在 中,系统自带的服务器控件为应用程序开发提供了诸多便利。
在应用程序开发中,许多功能都需要重复使用,而如果在应用程序开发中重复的编写类似的代码是非常没有必要的。
让开发人员可以自行开发用户控件以提升代码的复用性。
提供了两种选择:(1)用户控件(2)自定义控件一、用户控件1、什么是用户控件用户控件使开发人员能够根据应用程序的需求,方便的定义和编写控件。
开发所使用的编程技术将与编写Web 窗体的技术相同,只要开发人员对控件进行修改,就可以将使用该控件的页面的所有控件都进行更改。
(1)用户控件的文件扩展名为.ascx,而不是.aspx。
(2)用户控件中没有@Page指令,而是包含@Control指令,该指令对配置及其他属性进行定义。
(3)用户控件不能作为独立文件运行。
而必须像处理任何控件一样,将它们添加到窗体中。
(4)用户控件中没有html、body或form元素。
这些元素必须位于宿主页中。
2、编写一个简单的控件项创建一个用户控件,如图1所示。
图1 创建用户控件用户控件创建完毕后,会生成一个.ascx 页面。
.ascx 页面结构同.aspx 页面基本没有什么区别。
在解决方案管理器中可以打开.aspx页面和.ascx页面进行对比,其结构并没有太大的变化。
用户控件中并没有“<html><body>”等标记,因为.ascx 页面作为控件被引用到其他页面,引用的页面(如.aspx 页面)其中已经包含<body><html>等标记。
而如果控件中使用这样的标记,可能会造成页面布局混乱。
用户控件创建完成后,.ascx 页面代码如下所示。
其中没有任何的“<body><html>”等标记,而.ascx.cs 页面代码基本同.aspx 相同,示例代码如下所示。
图2 Default.aspx.cs页面内容图3 myControl.aspx.cs页面内容用户控件能够提高复用性,前面介绍的服务器控件,从很多情况下来说都可以看作是用户控件的一种。
用户控件和自定义控件的定义的区别
(一).用户控件和自定义控件概述
用户控件(UserControl): 扩展名为*.ascx,跟*.aspx 在结构上相似,是指页面中
加载的功能块,只是用户控件不能单独作为页面运行,必须嵌入到*.aspx页面或其它用
户控件中使用.
自定义控件,跟HtmlControl或WebControl相似,编译后可以添加引用到工具栏里
面,直接用鼠标拖动使用.
(二).使用
在一个大系统中,有时候会只能几个*.aspx页面,其余的都是做成*.ascx页面,
这样可以增强页面之间的藕合性,一个用户控件*.ascx都作为一个独立的功能块.
自定义控件是指编译后直接可以放到工具箱中用,就像TextBox,DataGrid一样
在设计器中可以用鼠标拖动到页面上使用.
自定义服务器控件分为两种:
1.一种是用*.aspx代码和*.cs代码编译后
生成DLL,再添加引用到工具箱使用.
一般用于WebForm中.
2.另一种是只用*.cs实现,再编译生成DLL,添加到工具箱使用.
一般用于WinForm中.
自定义控件生成步骤:
比如:
1. 将一个Button从设计器拖到页面中,
对按钮大小,颜色或文本设置一个固定值,保存文件名为: a.cs
2. csc /r:System.dll
/t:library/out:..\..\A.dll a.cs
3. 右击工具箱空白处,弹出右击菜单后,选“添加移除项”,将刚生成的DLL
添加到工具箱里面来,这样,就可以像一般的Button一样拖动使用了。