Share via


@ Reference

Başka bir kullanıcı denetimi, sayfa kaynak dosyası veya herhangi bir sanal yoldaki rasgele bir dosyanın dinamik olarak derlenmiş ve bu yönergenin bildirildiği geçerli ASP.NET dosyasına (Web sayfası, kullanıcı denetimi veya ana sayfa) dayalı olarak bağlanmış olduğunu belirtir.

<%@ Reference Page="path to .aspx page"
   Control="path to .ascx file"
   virtualPath="path to file" %>

Öznitelikler

  • Page
    ASP.NET'in dinamik olarak derlediği ve @ Reference yönergesini içeren geçerli dosyaya bağladığı dış sayfa.

  • Control
    ASP.NET'in dinamik olarak derlediği ve @ Reference yönergesini içeren geçerli dosyaya bağladığı harici kullanıcı denetimi.

  • virtualPath
    Başvuru için sanal yol. Bir yapı sağlayıcı var olduğu sürece herhangi bir dosya türü olabilir. Örneğin, ana sayfaya işaret etmek mümkün olacaktır.

Açıklamalar

Bu yönergeyi kullanmak dinamik olarak bir sayfa, kullanıcı denetimi veya başka bir yapı sağlayıcı ile ilişkili dosya türü derlemeyi ve geçerli Web sayfasına, kullanıcı denetimine veya @ Reference yönergesini içeren ana sayfa dosyasına bağlantı sağlar. Mevcut dosya içindeki harici derlenmiş nesneye ve bu nesnenin ortak üyelerine başvuru sağlar.

Örnek

Aşağıdaki kod örneği, bu yönergenin kullanıcı denetimine bağlantı sağlamak ve LoadControl yöntemini kullanarak kullanıcı denetimi içeren sayfaya yüklemek için nasıl kullanılacağını gösterir. Kodun ilk parçası basit bir kullanıcı denetimidir. Bu kodu yeni bir dosyaya koymanız ve MyControl.ascx olarak adlandırmanız gerekir. Kodun ikinci parçası kullanıcı denetimine başvuran bir sayfadır. Sayfaya yüklendiğinde kullanıcı denetiminin LabelText değeri ayarlanır ve kullanıcı denetimi Control.Controls özelliği aracılığıyla PlaceHolder sunucu denetiminin System.Web.UI.ControlCollection nesnesi aracılığıyla eklenir.

<%@ 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>

Ayrıca bkz.

Başvuru

Metin Şablonu Yönerge Sözdizimi

Kavramlar

ASP.NET Web sayfa sözdizimi genel bakış

Diğer Kaynaklar

ASP.NET kullanıcı Denetimler