@ Reference
Indica que outro usuário controle, arquivo de origem da página ou arquivo arbitrário, localizado em algum caminho virtual deve ser dinamicamente compilado e vinculado em relação à página ASP.NET file (página da Web, o controle de usuário ou página-mestre) na qual essa diretiva é declarada.
<%@ Reference Page="path to .aspx page"
Control="path to .ascx file"
virtualPath="path to file" %>
Atributos
Page
O external página ASP.NET dinamicamente deve compilar e vincular ao arquivo atual que contém o @ Reference diretiva.Control
O usuário externo controlam que o ASP.NET dinamicamente deve compilar e vincular ao arquivo atual que contém o @ Reference diretiva.virtualPath
O caminho virtual para a referência. Pode ser qualquer tipo de arquivo como um provedor de compilação existe. Por exemplo, seria possível apontar para uma página mestra.
Comentários
Usando essa diretiva permite que você dinamicamente compilar uma página, um controle de usuário ou outro tipo de arquivo que está associado um provedor de compilação e vinculá-lo para a página da Web atual, o controle de usuário ou o arquivo de página mestra que contém o @ Reference diretiva. Isso permite que você faça referência a objeto externo compilado e seus membros públicos de dentro do arquivo atual.
Exemplo
O exemplo de código a seguir demonstra o uso essa diretiva para vincular a um controle de usuário e carregá-lo para uma página contendo usando o LoadControl método. A primeira parte do código é um controle de usuário simples. Coloque esse código em um novo arquivo e o nome MyControl.ascx. A segunda parte do código é uma página que faz referência ao controle de usuário. Quando ele é carregado na página, o controle de usuário LabelText valor é definido e o controle de usuário é adicionado a um PlaceHolder controle de servidor System.Web.UI.ControlCollection objeto por meio do Control.Controls propriedade.
<%@ Control language="C#" ClassName="MyControl" %>
<script runat="server">
private string _labelText;
public string LabelText
{
get { return _labelText; }
set
{
if(!String.IsNullOrEmpty(value))
_labelText = Server.HtmlEncode(value);
}
}
void label1_init(object sender, EventArgs e)
{
label1.Text = LabelText;
}
</script>
<asp:label id="label1" runat="server" Text=""
oninit="label1_init" />
<%@ Page language="C#" %>
<%@ Reference Control="MyControl.ascx" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
MyControl ctrl = (MyControl) Page.LoadControl("MyControl.ascx");
ctrl.LabelText = "Hello World!";
PlaceHolder.Controls.Add(ctrl);
}
</script>
<html>
<body>
<asp:placeholder id="PlaceHolder" runat="server" />
</body>
</html>
<%@ Control language="VB" ClassName="MyControl" %>
<script runat="server">
Dim _labelText As String
Public Property LabelText() as String
Get
Return _labelText
End Get
Set(Byval value as String)
If Not String.IsNullOrEmpty(value) Then
_labelText = Server.HtmlEncode(value)
End If
End Set
End Property
Sub label1_init(Byval sender as Object, _
ByVal e as EventArgs)
label1.Text = LabelText
End Sub
</script>
<asp:label id="label1" runat="server" Text=""
oninit="label1_init" />
<%@ Page language="VB" %>
<%@ Reference Control="MyControl.ascx" %>
<script runat="server">
Sub Page_Load(ByVal sender As Object, _
ByVal e As EventArgs)
Dim ctrl As MyControl = _
CType(Page.LoadControl("MyControl.ascx"), MyControl)
ctrl.LabelText = "Hello World!"
PlaceHolder.Controls.Add(ctrl)
End Sub
</script>
<html>
<body>
<asp:placeholder id="PlaceHolder"
runat="server" />
</body>
</html>
Consulte também
Referência
Texto Sintaxe de modelo de diretiva
Conceitos
Visão geral da sintaxe de página da Web ASP.NET