@人人都有一个梦想,每天都在圆这个梦...... <-- 记录学习中点滴,一步步成长 ^o^ -->

学习在web 项目中注册用户控件的方法

在项目中有时会需要创建可重复使用的自定义控件(用户控件)。

“用户控件是一种复合控件,工作原理非常类似于 ASP.NET 网页 - 您可以向用户控件添加现有的 Web 服务器控件和标记,并定义控件的属性和方法。 然后可以将控件嵌入 ASP.NET 网页中充当一个单元。”

可以在用户控件上使用与在 ASP.NET 网页上所用相同的 HTML 元素(htmlbodyform 元素除外)和 Web 控件。

 

直接在设计视图下,把定义的控件从网站目录里拖放到需要的位置,会自动产生注册该控件的代码,如下类似
 

在网页中注册(包含)用户控件的方法:

例如:

 

1 <%@ Register Src="../UserControl/ucAccountList.ascx" TagName="ucAccountList" TagPrefix="uc2" %>
2  <%@ Register Src="../UserControl/ucEngList.ascx" TagName="ucEngList" TagPrefix="uc1" %>

在包含 ASP.NET 网页中,创建一个 @ Register 指令,在其中包括:

  • 一个 TagPrefix 特性,该特性将前缀与用户控件相关联。此前缀将包括在用户控件元素的开始标记中。

  • 一个 TagName 特性,该特性将名称与用户控件相关联。此名称将包括在用户控件元素的开始标记中。

  • 一个 Src 特性,该特性定义包括的用户控件文件的虚拟路径。

Src 特性值既可以是相对路径,也可以是从应用程序的根目录到用户控件源文件的绝对路径。 为灵活使用,建议使用相对路径。 代字号 (~) 表示应用程序的根目录。 用户控件不能位于 App_Code 目录中。


 

上面的方法简单易行,不过不易管理和维护。当你要在你的网站的许多页面上使用控件的话,尤其是,假如你移动了.ascx 文件,需要更新所有的注册声明的话会比较麻烦。

更好的方法是,在web.config 里配置控件的声明,这样就不用在页面上重复这些声明了。

例如:

1 <system.web>
2 <pages theme="ENG">
3 <controls>
4 <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
5 <add tagPrefix="uc" tagName="ucEngList" src="~/UserControl/ucEngList.ascx"/>
6 <add tagPrefix="uc" tagName="ucEngDetail" src="~/UserControl/ucEngDetail.ascx"/>
7 </controls>
8 </pages>
...
...

小知识点,慢慢积累 \(^o^)/~

 

 


posted @ 2010-12-23 15:35  有你的城市  阅读(548)  评论(0编辑  收藏  举报