Asp.net中的<@register%>

来源:互联网 发布:unity3d 跳跃代码 编辑:程序博客网 时间:2024/05/19 02:19

<%@ Register src="UserControl/UCCategoryTree.ascx" tagname="UCCategoryTree" tagprefix="uc1" %>
<%@ Register TagPrefix="webdiyer" Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" %>

 

今天下一个分页功能时,实例代码中引用了以为非常值得尊敬的牛人杨涛的AspNetPager分页控件的DLL文件,这是一个编译好的dll文件,功能很不错,但对这种引用方式不是很明白,最后我找了一下面的解释,讲的很明了!

先附上今天的示例中的一段用于注册控件代码:

<%@ Register src="UserControl/UCCategoryTree.ascx" tagname="UCCategoryTree" tagprefix="uc1" %>

//注意,上面这句是引用一个用户控件,将这个用户控件注册到当前页面来使用,这里面tagname属性和src属性一定是配对的,只写了tagname值,没有src就无法编译通过。
<%@ Register TagPrefix="webdiyer" Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" %>

//这是AspNetPager分页控件的注册语句

 

-----------------以下是网上找的解释-----------------

<%@ Register tagprefix="tagprefix" Namespace="namespace" Assembly="assembly" %> 

<%@ Register tagprefix="tagprefix" Tagname="tagname" Src="pathname" %>

属性

tagprefix

与命名空间关联的别名。

tagname

与类关联的别名。

Namespace

与 tagprefix 关联的命名空间。

Src

与 tagprefix:tagname 对关联的声明性用户控件文件的位置(相对的或绝对的)。

Assembly

与 tagprefix 关联的命名空间所驻留的程序集。

注意 程序集名称不包括文件扩展名。

备注

如果在页或用户控件中包含 @ Register 指令,则可以使用声明性自定义服务器控件语法为自定义服务器控件或用户控件布局。

在以下情况中,使用 @ Register 指令。

通过声明将自定义 ASP.NET 服务器控件添加到页或用户控件。

将声明性用户控件添加到页或用户控件。

对于声明性用户控件,请使用 tagname、tagprefix 和 src 属性。在页中声明控件时,前两个属性总是以冒号分隔对 (tagprefix:tagname) 的形式一起使用。src 属性值既可以是从应用程序根目录到用户控件源文件的相对路径,也可以是绝对路径。为方便使用,建议使用相对路径。例如,假设将所有应用程序用户控件文件存储在应用程序根目录的子目录 \usercontrol 下。要包括 usercontrol1.ascx 文件中的用户控件,请在 @ Register 指令中包含以下内容:

Src="~\usercontrol\usercontrol1.ascx"

代字号 (~) 表示应用程序的根目录。

注意 如果用户控件和包含该控件的页位于同一目录中,则 src 属性值应该为 .ascx 文件的文件名和扩展名。

当包含已经编译为 .dll 文件供应用程序使用的自定义服务器控件时,请将 tagprefix 与 Assembly 和 Namespace 属性一起使用。如果没有包含 Namespace 属性,或者给该属性分配了一个空字符串,则会出现分析器错误。

警告在开发自定义服务器控件时,必须将其包含在命名空间中。如果没有包含在命名空间中,则将无法从 ASP.NET 页中访问该控件。有关开发自定义 ASP.NET 服务器控件的更多信息,请参见开发简单的 ASP.NET 服务器控件。

示例

以下代码片段使用 @ Register 指令声明服务器控件和用户控件的 tagprefix 和 tagname 别名。第一条指令将 MyTag 别名声明为驻留在 MyCompany:MyNameSpace 命名空间中的所有控件的标记前缀。第二条指令将 Acme:AdRotator 声明为文件 Adrotator.acscx 中用户控件的 tagprefix:tagname 对。然后,在窗体的自定义服务器控件语法中使用别名,为每个服务器控件插入一个实例。

<%@ Register Tagprefix="MyTag" Namespace="MyCompany:MyNameSpace" Assembly="MyAssembly" %>

<%@ Register Tagprefix="Acme" Tagname="AdRotator" Src="AdRotator.ascx" %>

<HTML>

<body>

<form runat="server">

<MyTag:MyControl runat="server" /><BR>

<Acme:AdRotator file="myads.xml" runat="server" />

</form>

</body>

</HTML> 

0 0