asp.net中的<%@ Register %>

本文介绍了ASP.NET中如何引用自定义服务器控件和用户控件,并解释了@Register指令的使用方法及其属性的作用,包括tagprefix、tagname、src和assembly等。

<%@ 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> 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm1.aspx.cs" Inherits="WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>用户注册</title> <style type="text/css"> .error { color: red; } </style> </head> <body> <form id="form1" runat="server"> <div> <label for="txtName">姓名:</label> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName" ErrorMessage="用户必须填写" ForeColor="Red" Display="Dynamic"></asp:RequiredFieldValidator> </div> <div> <label for="txtPassword">密码:</label> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtPassword" ValidationExpression="^.{8,}$" ErrorMessage="密码必须八位以上" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator> </div> <div> <label for="txtConfirmPassword">确认密码:</label> <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtConfirmPassword" ControlToCompare="txtPassword" ErrorMessage="两次密码必须一致" ForeColor="Red" Display="Dynamic"></asp:CompareValidator> </div> <div> <label for="txtPhone">手机号:</label> <asp:TextBox ID="txtPhone" runat="server"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtPhone" ValidationExpression="^1[35789][0-35-9]\d{8}$" ErrorMessage="手机号格式不正确" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator> </div> <div> <label>请修正以下错误:</label> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowSummary="true" ShowMessageBox="false" HeaderText="" CssClass="error"></asp:ValidationSummary> </div> <div> <asp:Button ID="btnRegister" runat="server" Text="注册" OnClick="btnRegister_Click" /> </div> </form> </body> </html>
05-12
<%@ Page Language="C#" MasterPageFile="~/master.master" AutoEventWireup="true" CodeFile="Manager.aspx.cs" Inherits="Manager" Title="My bss" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div class="page" id="page"> <div id="table" runat=server class="table"> <h2 runat=server id="h2"></h2> <asp:GridView ID="articlelist" runat="server" CellPadding="4" ForeColor="#6C7E4A" GridLines="Horizontal" AllowPaging="True" AutoGenerateColumns="False" Width="100%" OnRowDeleting="articlelist_RowDeleting" > <FooterStyle BackColor="#BCD988" Font-Bold="True" ForeColor="#996600" /> <RowStyle BackColor="#F9F9F9" BorderColor="#BCD988" BorderStyle="Solid" BorderWidth="1px" /> <PagerStyle BackColor="#BCD988" ForeColor="#996600" HorizontalAlign="Left"/> <HeaderStyle BackColor="#BCD988" Font-Bold="True" ForeColor="#996600" HorizontalAlign="Center" VerticalAlign="Middle" /> <AlternatingRowStyle BackColor="White" /> <PagerSettings FirstPageText="首页" LastPageText="尾页" Mode="NextPreviousFirstLast" NextPageText="下一页" PreviousPageText="上一页" /> <Columns> <asp:BoundField DataField="id" HeaderText="文章编号" ReadOnly="True" > <ItemStyle CssClass="hidden" /> <HeaderStyle CssClass="hidden" /> <FooterStyle CssClass="hidden" /> </asp:BoundField> <asp:BoundField DataField="replaynum" HeaderText="回复" /> <asp:BoundField DataField="readnum" HeaderText="阅读" /> <asp:BoundField DataField="title" HeaderText="题目" /> <asp:BoundField DataField="username" HeaderText="作者" /> <asp:BoundField DataField="classname" HeaderText="类别" /> <asp:BoundField DataField="time" HeaderText="发表时间" /> <asp:CommandField HeaderText="管理" ShowDeleteButton="True" /> </Columns> </asp:GridView> </div> <div id="message" runat="server"> <asp:HiddenField ID="classValue" runat="server" /> </div> </div> </asp:Content> 为什么提示我有不是已知元素
最新发布
06-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值