@ Reference
Označuje, že jiný uživatelský ovládací prvek, zdrojový soubor stránky nebo libovolný soubor, který se nachází v některé virtuální cestě, by měl být dynamicky zkompilován a linkován k aktuálnímu souboru technologie ASP.NET (webová stránka, uživatelský ovládací prvek nebo stránka předlohy), který je v této direktivě deklarován.
<%@ Reference Page="path to .aspx page"
Control="path to .ascx file"
virtualPath="path to file" %>
v případě vícehodnotových atributů
Page
Externí stránka, kterou by měla technologie ASP.NET dynamicky zkompilovat a přilinkovat k aktuálnímu souboru, který obsahuje direktivu @ Reference.Control
Externí uživatelský ovládací prvek, který by měla technologie ASP.NET dynamicky zkompilovat a přilinkovat k aktuálnímu souboru, který obsahuje direktivu @ Reference.virtualPath
Virtuální cesta pro odkaz. Může být libovolný typ souboru, tak dlouho, dokud existuje poskytovatel sestavení. Například je možné ukazovat na stránku předlohy.
Poznámky
Použití této direktivy umožňuje dynamicky zkompilovat stránku, uživatelský ovládací prvek nebo jiný typ souboru, který je přidružen k poskytovateli sestavení, a slinkovat jej s aktuální webovou stránkou, uživatelským ovládacím prvkem nebo stránkou předlohy, která obsahuje direktivu @ Reference. To umožňuje odkazovat se na externí kompilované objekty a jeho veřejné členy v rámci aktuálního souboru.
Příklad
Následující příklad kódu ukazuje, jak pomocí této direktivy připojit uživatelský ovládací prvek a načíst jej do stránky obsahu pomocí metody LoadControl. První část kódu je jednoduchý uživatelský ovládací prvek. Měli byste umístit tento kód do nového souboru s názvem MyControl.ascx. Druhá část kódu je stránka, která se odkazuje na uživatelský ovládací prvek. Když je načten do stránky, je nastavena hodnota LabelText uživatelského ovládacího prvku a uživatelský ovládací prvek je přidán do System.Web.UI.ControlCollection serverového ovládacího prvku PlaceHolder prostřednictvím vlastnosti Control.Controls.
<%@ 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>
Viz také
Odkaz
Syntaxe šablony textu směrnice
Koncepty
Přehled syntaxe webová stránky technologie ASP.NET