@ 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ış