在ASP.NET中使用用户控件

来源:互联网 发布:查看网卡mac地址 编辑:程序博客网 时间:2024/05/05 04:17

从应用程序三层结构分析组件的重要性

什么是组件?
可以在不同的应用程序中使用的对象的集合
软件编程中的积木
是个功能完备的单元,带有与它的内部体系结构相对独立的外部接口
例如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用户控件”,创建界面元素

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);

实例4:实现一个ASP.NET Back控件