@ Reference
[Dieses Dokument dient lediglich Vorschauzwecken und kann in späteren Versionen geändert werden. Leere Themen sind als Platzhalter enthalten.]
Gibt an, dass ein anderes Benutzersteuerelement, eine andere Seitenquelldatei oder eine beliebig andere Datei aus einem virtuellen Pfad dynamisch kompiliert und mit der aktuellen ASP.NET-Datei (Webseite, Benutzersteuerelement oder Masterseite) verknüpft werden soll, in der diese Direktive deklariert wird.
<%@ Reference Page="path to .aspx page"
Control="path to .ascx file"
virtualPath="path to file" %>
Attribute
Page
Die externe Seite, die dynamisch kompiliert und mit der aktuellen Datei verknüpft werden soll, die die @ Reference-Direktive enthält.Control
Das externe Benutzersteuerelement, das dynamisch kompiliert und mit der aktuellen Datei verknüpft werden soll, die die @ Reference-Direktive enthält.virtualPath
Der virtuelle Pfad für den Verweis. Dabei kann es sich um jeden beliebigen Dateityp handeln, solange ein entsprechender Buildanbieter vorhanden ist. Sie können z. B. auf eine Masterseite zeigen.
Hinweise
Mithilfe dieser Direktive können Sie eine Seite, ein Benutzersteuerelement oder eine andere Datei, die einem Buildanbieter zugeordnet ist, dynamisch kompilieren und sie mit der aktuellen Webseite, dem aktuellen Benutzersteuerelement oder der aktuellen Masterseitendatei mit der jeweiligen @ Reference-Direktive verknüpfen. Auf diese Weise kann aus der aktuellen Datei heraus auf das externe, kompilierte Objekt und seine öffentlichen Member verwiesen werden.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie Sie mit dieser Direktive ein Benutzersteuerelement verknüpfen und es mithilfe der LoadControl-Methode in die Seite laden, in der es verwendet werden soll. Beim ersten Teil des Codes handelt es sich um ein einfaches Benutzersteuerelement. Kopieren Sie diesen Code in eine neue Datei, und nennen Sie die Datei MyControl.ascx. Beim zweiten Teil des Codes handelt es sich um eine Seite, die auf das Benutzersteuerelement verweist. Beim Laden in die Seite wird der LabelText-Wert des Benutzersteuerelements festgelegt, und das Benutzersteuerelement wird über die Control.Controls-Eigenschaft dem System.Web.UI.ControlCollection-Objekt eines PlaceHolder-Serversteuerelements hinzugefügt.
<%@ 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>
Siehe auch
Referenz
Syntax für Textvorlagendirektiven
Konzepte
ASP.NET Web Page Syntax Overview