标签集

Asp.net 用户自定义控件初级入门(转)

6.4.1 用户自定义控件概述
使用Web用户控件可根据程序的需要方便地定义控件,且在设计用户控件时所使用的编程技术与设计Web页面的技术完全相同,为了确保用户控件不能作为一个独立的Web窗体来使用,用户控件文件名以“.ascx”为扩展名进行标识。
在用户控件上可以使用标准Web窗体上相同的HTML控件和Web服务器控件。例如,希望创建一个网站导航栏用户控件,则可将若干ImageButton控件通过HTML表格进行布局,并创建这些ImageButton的事件处理程序即可。
用户控件页与Web窗体页主要有以下两点区别:
1) 用户控件页只能以.ascx为扩展名;
2) 在用户控件文件中不能包含<html>、<body>、<from>元素,这些元素应位于宿主页(用户控件所在的Web窗体页)中。

6.4.3 在设计视图中添加用户控件
用户控件的界面和事件处理程序编写完毕后,还必须将其放置在一个Web窗体页中才能使用。在设计视图中打开希望添加用户控件的Web窗体页面,注意一定要将页面切换到“设计”视图。
在解决方案资源管理器中将设计完毕的用户控件直接拖动到页面适当的位置。窗体设计器能自动向Web页面添加@Register页面指示符,从此开始用户控件就成为了Web窗体的一个组成部分。此外,当用户控件被添加到Web窗体中后,该控件的公共属性、事件和方法也将向Web窗体公开,并可以通过编程的方式来使用。

http://www.code-123.com/zhuanti/asp.net/html/6-13.mht   实例化运行

6.4.4 程序运行时动态添加用户控件
用户控件也可以在程序运行时通过代码动态地加载,这样就能根据实际需要向页面中添加不同的用户控件,或通过循环向页面中添加若干个相同的用户控件。
在实际应用中,通常需要在主Web页面中添加一个容器控件PlaceHolder,作为用户自定义控件的“占位”控件。在程序运行时通过代码创建一个用户控件的实例,而后将用户控件添加到容器控件中。例如:
protected void Page_Load(object sender, EventArgs e)
{
  Control head = LoadControl(“header.ascx”);
  PlaceHolder1.Controls.Add(head);
}

6.4.5 公开构成控件的属性
组成用户控件的控件称为“构成控件”。这些控件通常被声明为私有的,因此开发人员不能访问它们。如果想要使将来的用户可以使用这些控件的属性,则必须将其公开。通过创建用户控件中的自定义属性,并使用该属性的Get和Set访问器,影响构成控件的私有属性,就可以使构成控件的属性得以公开。
公开构成控件属性需要进行以下3个操作。
1) 创建用户控件的公共属性。
2) 在此属性的get部分,编写用于检索要公开的属性值的代码。
3) 在此属性的set部分,编写用于将此属性的值传递给构成控件的公开属性的代码。

posted on 2010-09-28 07:50  宋亚奇  阅读(413)  评论(0编辑  收藏  举报

导航