使用用户控件(1)

3.2.2 使用用户控件(1)

ASP.NET提供了用户自定义控件机制来封装某些独立的功能,或者是页面的某个模块。通过这些封装,使页面代码更加结构化,也提高了页面代码的复用性。

用户自定义控件可以包含任何HTML代码和服务器端控件,所以它需要具有类似于页面一样的可随意编辑的特性。但是它毕竟不是页面,所以不能被当做页面处理。所以,它有自己的文件格式、自己的属性、自己独有的页面指令。 视频教学:光盘/videos/3/ControlCommand.avi 长度:11分钟

1. 基础知识——@Control指令和@Register指令

ASP.NET用户控件的页面指令是@Control。与Web窗体的@Page指令用法一样,用来定义用户控件的属性,供分析器的编辑器检查使用。

当我们新建一个用户控件的时候,系统会自动地在该用户控件的头部加入一个@Control指令。默认代码如下:

<%@ Control Language="C#" AutoEventWireup="true"   

  1. CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %

这里的属性和@Page指令一样,Language指定服务器端语言;AutoEventWirup说明是否自动绑定事件;CodeFile指定用户控件后台代码文件;Inherits同样是指定该用户控件继承自哪一个类。

下面是具体的属性列表,如表3-4所示。

表3-4 @Control指令属性

 

在声明用户控件的时候,我们要用到@Control指令,在使用用户控件的时候,我们需要用到@Register指令。@Register指令的语法为:

  1. <%@ Register src="WebUserControl.ascx" tagname="WebUserControl"   
  2. tagprefix="uc1" %

其具体属性说明如表3-5所示。

表3-5 @Register指令的属性

 

用户控件可以使用在Web窗体或其他用户控件中,但是绝对不能自己嵌套自己。所以@Register指令可以出现在用户控件或Web窗体内。

2. 实例描述

在浏览一些大的门户网站的时候,我们经常会见到一个出现在不同页面不同位置的搜索框。这些搜索框一般由一个文本框、一个按钮和一些其他的东西组成。虽然在不同的位置,却是同一个风格,同一个模样。

作者刚好这段时间要做一个网站,网站里有站内搜索的功能,用的是用户控件,感觉相当不错。使用后不仅代码结构清晰了,而且修改的时候更方便了。

3. 实例应用

【例3-2】使用用户控件。

(1) 打开上节我们使用的项目,添加一个“Web用户控件”项,命名为WUCSearch.ascs。

(2) 添加控件内容。这里添加一个文本框和一个命令按钮。添加后用户控件内的代码如下:

 

posted @ 2016-03-18 00:24  姚小丹  阅读(723)  评论(0编辑  收藏  举报