【Asp.net精品源码栏目提醒】:网学会员在Asp.net精品源码频道为大家收集整理了“第7章__用户控件和自定义控件 - 其它资料“提供大家参考,希望对大家有所帮助!
第7章 用户控件和自定 义控件 学习目的与要求除在
ASP.NET 网页中使用Web 服务器控件外,还可以使用 用于创建
ASP.NET 网页的相同技术创建可重复使用的自 定义控件,这些控件称作用户控件。
学习目的与要求本章即将讲解用户控件和自定义控件的开发和使用。
通过本章的学习你将能够: u 了解用户控件的相关概念。
u 掌握如何将Web窗体转换成用户控件。
u 掌握创建和使用用户控件的方法。
u 学会如何开发简单的自定义控件。
理解复合自定义控件 开发的方法。
u 了解用户控件和自定义控件的联系和区别。
本章主要内容用户控件:包括什么是用户控件和如何创建用户控件。
将Web窗体转换成用户控件。
自定义控件的开发。
用户控件和自定义控件的异同。
7.1 用户控件用户控件是一种复合控件,工作原理非常类似于
ASP.NET 网页。
可以向用户控件添加现有的Web服务器控件和标记,并定义 控件的属性和方法。
然后可以将控件嵌入
ASP.NET 网页中充当一个单元。
7.1.1 用户控件概述用户控件使开发人员能够根据应用程序的需求,方便的定义 和编写控件。
开发所使用的编程技术将与编写Web窗体的 技术相同,只要开发人员对控件进行修改,就可以将使用 该控件的页面的所有控件都进行更改。
7.1.1 用户控件概述用户控件与
ASP.NET 网页有以下区别: u (1)用户控件的文件扩展名为 .ascx。
u (2)用户控件中没有 Page指令,而是包含 Control 指令,该指令对配置及其他属性进行定义。
u (3)用户控件不能作为独立文件运行。
而必须像处理任 何控件一样,将它们添加到
ASP.NET页中。
u (4)用户控件中没有html、body 或form元素。
这些元 素必须位于宿主页中。
7.1.2 将Web窗体页转换为用户控件1.将单文件
ASP.NET 网页转换为用户控件将单文件
ASP.NET网页转换为用户控件的步骤如下: u (1)重命名控件使其文件扩展名为 .ascx。
u (2)从该页面中移除html、body 和 form元素。
u (3)将 Page指令更改为 Control指令。
u (4)移除 Control指令中除Language、AutoEventWireup(如果 存在)、CodeFile 和 Inherits之外的所有特性。
u (5)在 Control指令中包含className特性。
这允许将用户控件 添加到页面时对其进行强类型化。
7.1.2 将Web窗体页转换为用户控件2.将代码隐藏
ASP.NET 网页转换为用户控件将代码隐藏
ASP.NET 网页转换为用户控件的步骤如下: u (1)重命名 .aspx 文件,使其文件扩展名为 .ascx。
u (2)根据代码隐藏文件使用的编程语言,重命名代码隐藏文件使其 文件扩展名为 .ascx.vb 或 .ascx.cs。
u (3)打开代码隐藏文件并将该文件继承的类从 Page 更改为 UserControl。
u (4)针对每个.aspx 文件,按照将单文件
ASP.NET网页转换为用户 控件的步骤操作。
u (5)在 Control指令中包含className特性。
这允许将用户控件 添加到页面时对其进行强类型化。
7.1.2 将Web窗体页转换为用户控件3.将Web窗体转换成用户控件首先,需要删除、、等标记。
对于Web窗体,其标记方式的代码参见webPage.aspx页面 文件。
而对于用户控件,声明代码参见 webPageUserControl.ascx文件。
7.1.3 用户控件的开发1.建立用户控件在Visual Studio 2008中,首先打开或新建一个网站项目,新建用户控件 。
7.1.3 用户控件的开发用户控件创建完毕后,会生成一个WebUserControl1.ascx 页面,然后它将在设计器中打开。
用户控件创建完成后,.ascx页面的代码如下所示。
u 7.1.3 用户控件的开发2.完善用户控件
ASP.NET用户控件能够封装一个单元中多个子控件的功能。
用户控件由一个或多个
ASP.NET服务器控件(Button 控 件、TextBox 控件等)以及控件执行功能所需的任何代 码组成。
用户控件还可以包括自定义属性或方法,这些属性或方法向 容器(通常为
ASP.NET页)显示用户控件的功能。
用户控件 实例编写一个用作选择器控件的
ASP.NET 用户控件。
u 首先向新用户控件添加2个列表控件3个按钮控件,并对 控件的布局和相关属性进行修改和设置 。
u 界面布局如图7-4所示 u 当界面布局完毕后,就需要为用户控件编写事件。
u 接着,需要在网站中创建一个Web 窗体。
u 切换到新页面HostUserControl.aspx的“设计”视图中, 将用户控件文件 (WebUserControl1.ascx) 拖动到页 面上。
源代码参见HostUserControl.aspx,和 WebUserControl1.ascx文件 用户控件 实例将用户控件放置到页面上将会在页面中创建两个新 元素:(1)页面的顶部是一个新的Register指令,示例 代码如下所示: u //声明控件引用(2)第二个新元素是用户控件的元素,示例代码 如下所示: u //使用用户控件 用户控件 实例运行HostUserControl.aspx页面,如图7-5所示。
7.2 自定义控件用户控件能够执行很多操作。
并实现一些功能,但是在复杂 的环境下,用户控件并不能够达到开发人员的要求,是因 为用户控件大部分都是使用现有的控件进行组装,编写事 件来达到目的。
于是,
ASP.NET允许开发人员编写自定 义控件实现复杂的功能。
7.2.1 简单的自定义控件自定义控件是编写的一个类,此类从Control或WebControl 派生。
Control类提供了将其放在Page类的控件树中的基 本功能。
自定义控件需要定义一个直接或间接从Control类派生的类, 并重写Render方法。
WebControl 类将功能添加到基本 的控件类,用于在客户端计算机上显示可视的内容。
例如 可以使用WebControl类以控制外观和样式通过诸如字体、 颜色和高度等属性。
简单自定义控件 实例首先,需要创建一个自定义控件ServerControl1 。
简单自定义控件 实例自定义控件创建完成后,会自动生成一个类和相应 的方法,用户能够在源代码中编写属性,示例代 码如下所示。
u private int noOfTimes u public int NoOfTimes //编写属性 u u get return this.noOfTimes //获取属性 u set this.noOfTimes value //设置属性 u