2011-01-30 17 views

Odpowiedz

17

@Register jest bardziej powszechnie stosowane dyrektywy. Używa się tego, gdy chcemy deklaratywnie używać kontrolki użytkownika na stronie aspx lub ascx. @Register powiąże formant z określonym prefiksem i możesz go użyć w znacznikach.

@Reference mówi tylko programowi ASP.NET, aby skompilował inny formant po skompilowaniu strony aspx lub ascx. Zapewnia to, że jest on dostępny w czasie wykonywania i może być programowo dodany do hierarchii kontroli. Jest to mniej powszechne, ponieważ dynamicznie zmieniające się elementy sterowania użytkownika w środowisku wykonawczym nie są łączone.

Oto dobry wpis na blogu na ten temat.

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

20

@Register służy przede wszystkim do rejestracji tag prefiksów do deklaratywnie obsłudze elementy sterujące w obrębie strony.

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

<my:CustomControl runat=server /> 

@Reference jest głównie używany w odniesieniu do strony lub użytkownika kontroli (według nazwy pliku lub ścieżki wirtualnej) do programowo patrz członków strony lub kontrolą.

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

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