开发者

ASP.NET @Register vs. @Reference

I'm wor开发者_JAVA技巧king with referencing user controls on my ASPX page and I'm wondering what the difference is between these two page directives.

@Reference @Register


@Register is primarily used for registering tag prefixes to declaratively use controls within a page.

<%@ Register tagprefix="my" namespace="MyNamespace" %>

<my:CustomControl runat=server />

@Reference is primarily used to refer to a page or user control (by file name or virtual path) to programatically refer to members of the page or control.

<%@ Reference Control="MyControl.ascx" %>

<%  MyControl ctrl = (MyControl) Page.LoadControl("MyControl.ascx");
    ctrl.CustomProperty = "..."; //REFERENCE directive is needed to access property
%>


@Register is the more commonly used directive. You use this when you want to use a user control in your aspx or ascx page declaratively. @Register associates the control with a specific prefix and you can then use it in your markup.

@Reference only tells ASP.NET to compile the other control when your aspx or ascx page is compiled. That makes sure it is available at run-time and can be added to your control hierarchy programmatically. This is less common since dynamically changing user controls at runtime is not comon.

Here's a good blog post about it.

http://weblogs.asp.net/johnkatsiotis/archive/2008/08/13/the-reference-directive.aspx

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜