@ 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

Další zdroje

Uživatelské ovládací prvky technologie ASP.NET