您的位置:首页 > 编程语言 > ASP

在ASP.NET中使用用户控件

2012-08-23 16:31 225 查看
从应用程序三层结构分析组件的重要性

什么是组件?

可以在不同的应用程序中使用的对象的集合

软件编程中的积木

是个功能完备的单元,带有与它的内部体系结构相对独立的外部接口

例如DLL

组件的优点:

单个组件比一个功能齐全的应用程序要简单得多,它仅仅是一组预先定义好的功能

组件功能是独立的,如果接口相同可以拿另外一个组件来代替原来的组件,可以做到无缝升级

可以重复使用

较少代码量,使得代码更容易维护

ASP.NET中创建用户控件

什么是用户控件?

ASP.NET中的组件,是封装到可重用控件中的WEB表单,它们用来保存网站中许多页面所需要的重用代码块。

用户控件的优点:

它适用于页面上的重复元素,比如标题、菜单,登录控件等。将重复元素封装到用户控件中,减少每页的代码量。

创建用户控件-重复元素

创建.ascx用户控件文件,在ASP.NET页面中使用用户控件

代码分析<%@Register TagPrefix="UserControl" TagName="Header" Src="Header.ascx"%>

TagPrefix:控件组的通称

TagName:这个控件的名称

使用:UserControl:Header

创建用户控件-重复代码

VS.NET中用户控件的创建

新建ASP.NET WEB应用程序,在项目菜单中选择“添加WEB用户控件”,创建界面元素
 
用户控件与 Web 窗体(.aspx)很相似,可以同时具有前台页面和后台代码,在前台可以向其中添加所需的标签和服务器控件,在后台可以针对这些对象进行逻辑操作。不过它们存在以下这些区别:

    1)用户控件的文件扩展名为 .ascx,而 Web 窗体的扩展名为 .aspx;

    2)用户控件使用 @Control 指令声明,而 Web 窗体使用 @Page 指令;

    3)用户控件不能作为独立文件运行,而必须其它服务器控件一样,将它们添加到 Web 窗体中;

    4)用户控件中不能包含 <html>、<body> 和 <body> 等标签。

VS.NET中用户控件的使用

设计方式:把.ascx文件拖动到.aspx页面上,即可添加用户控件

编码方式:myTBPlus=(TextBoxPlus)LoadControl("TextBoxPlus.ascx");

PlaceHolder1.Controls.Add(myTBPlus);      优点:动态添加用户控件

用户控件小结:

用户控件使开发人员能够编写WEB窗体页的相同编程技巧轻松地定义自定义控件

作为约定,用.ascx文件扩展名指示这样的控件

用户控件通过Register指令包含在另一WEB窗体页中,该指令指定TagPrefix、TagName和Srclocation

注册了用户控件后,可以像普通的服务器控件那样将用户控件标记放置在web窗体页中。

在包含WEB窗体页中将用户控件的公共字段、属性和方法提升为该控件的公共属性(标记属性)和方法。

用户控件参与每个请求的整个执行生存期,并且可以处理自己的事件,封装来自包含WEB窗体页的一些页逻辑。

可以使用System.Web.UI.Page类的LoadControl方法以编程方式创建用户控件。用户控件的类型由ASP.NET运行库决定,遵循约定文件名_扩展名。

小结:重复使用的代码放在一起就是过程,重复使用的对象放在一起就是类,重复使用的类放在一起就是组件。

实例1:如何使用组件(在ASP.NET中操作word文件和excel文件)

实例2:创建重复元素用户控件

1.新建一个web应用程序项目

2.使用vs创建一个用户控件header,自动生成一个header.ascx文件和后台代码文件header.ascx.cs,在.ascx文件中添加一个表,设置表的背景色为一变量<table bgcolor="<%=strColor%>">

3.在后台代码文件header.ascx.cs中设置变量public string strColor="Red";

4.在主页面WebForm1.aspx中添加header的引用<%@ Register TagPrefix="uc" TagName="header" Src="header.ascx"%>,在页面中添加label,button和颜色下拉框

5.在WebForm1.aspx.cs文件中添加button点击事件,当按钮点击时,label显示选中的颜色名,并将控件的背景色设置为当前选中的背景色

实例3:创建和使用用户控件

在需要包含页面控件的文件中添加了注册页面控件的代码后,可以直接拖拉.ascx文件到此页面上直接使用该控件,此为一种方法

还可以通过FindControl方法添加控件

如下:

Control c2=LoadControl("header.ascx");

((header)c2).strColor="purple";

Page.Controls.Add(c2);

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息