Share via


@ Reference

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

Übersicht über die Syntax von ASP.NET-Webseiten

Weitere Ressourcen

ASP.NET-Benutzersteuerelemente