2024年3月14日发(作者:)

用户控件的应用

本节主要学习用户控件的工作原理、如何创建用户控件以及如何向

网页添加用户控件的信息。

本节内容

用户控件概述

如何:将 Web 窗体页转换为 用户控件

如何:在 网页中包括用户控件

如何: 用户控件的实例,用实例详细说明如何使用用户控件

用户控件概述

在前面的教学示例中使用了,提供的标准控件。毫无疑问,提供了

相当丰富的控件。但是,有时候这些控件还不能满足实际业务功能的要求。在这种情况下,

就可以使用开发具有所有自定义功能的新控件,本节我们学习如何在创建这些控

件。主要学习用户控件及应用。自定义控件下节学习。

用户控件和自定义控件的优点

在开始创建这些Web控件之前,有必要了解他们的用处。正如类的构建是为了代码重

用性,重用现有用户控件也很必要。例如,如果不提供控件,那么即使是网页/

窗体上的一个文本框也需要编码。TexTbox控件虽小,但为网页开发人员节省了数小时的重

复工作时间。既然这样一种简单的控件能有如此强大的可重用效果,可以想象如果能够重用

向DataGrid这样的复合控件,其帮助作用会有多大。显而易见,用户控件和自定义控件有助

于可视化能力和功能能力的可重用性,还有助于软件封装和分布这些功能。

用户控件是可重用的。可重用控件用两种方式创建,第一个而且是最简单的方法就如同

创建一个页面一样。这种控件成为用户控件。这些控件可简单地重用现有的

Web控件和HTML元素创建,生成一个ascx文件。第二种方法是使用C#创建完

成自定义的控件,这种控件叫自定义控件。

用户控件和自定义控件的差别

 用户控件用.ascx文件表示。它不是编译代码,便以随网页动态的进行,自定义控件被

编译在DLL文件中,是编译代码。

 用户控件不会出现在工具箱中,而自定义控价会出现在工具箱中。

 用户控件支持缓存,而自定义控件不支持缓存。

 用户控件会对使用可视化设计工具的用户提供有限的支持,而自定义控件控件会提供全

面的支持。

什么时候使用用户控件

一般地,当内容在逻辑上可组合在一起,而且又有可能要在多处使用时,使用用户控件。

这种控件可在一个应用程序中重用,但不能跨应用程序重用。例如,我们发现,很多网站的

所有页面的顶部都是一样的,用来显示网站的Logo和功能导航等,这种情况就可以把这个

相同的顶部做成用户控件;访问不同的网页都必须进行用户注册与登录,这种情况就可以把

用户注册与登录做成用户控件;上传下载文件等,也可以做成用户控件。

用户控件的编程规则

用户控件的编写与Web窗体文件类似,不同点在于:

1. 需将文件后缀名改为.ascx

2. 用户控件文件中不能使用

、、控件或标记。

3. 用户控件定义后,需要先在Web窗体中进行注册。通过使用@ Register指令,将用户控

件包含在 Web窗体中,使用语法为:

<%@ Register TagPrefix="用户控件命名空间" TagName="用户控件名称" Src="用户控

件文件的路径" %>

4. 用户控件定义并经注册后,就可以如同调用内置控件一样使用它了,其使用方法为:

<用户控件命名空间: 用户控件名称 Runat="server"/>

创建用户控件

用户控件不能单独存在和使用,它要求用页面作为容器。它必须在

主页面引用。用户控件的创建方法与中的一般Web页面很相似,只是他的文件扩

展名是.ascx

创建用户控件的步骤如下

(1)创建一个 Web页面,并调试运行通过,其Web页面文件名仍然是;

(2)去掉文件中的、、标记,命名文件为;

(3)保存文件待用。

知道如何使用服务端控件可不一定说明编写用户控件是件容易的事。事实上,编写一个

用户控件并让页面象使用服务端控件那样使用这些控件的确是件简单的事。这里

有一个简单示例:

这里是一个用户控件!

就是这么简单,难以置信!

在主页面引用。

<%@ Page Language="VB" %>

<%@ Register TagPrefix="user_c" TagName="SomeText" Src="" %>

User Control Sample - Basic

简单用户控件的运行效果: