Control.UniqueID Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sunucu denetimi için benzersiz, hiyerarşik olarak nitelenmiş tanımlayıcıyı alır.
public:
virtual property System::String ^ UniqueID { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual string UniqueID { get; }
[<System.ComponentModel.Browsable(false)>]
member this.UniqueID : string
Public Overridable ReadOnly Property UniqueID As String
Özellik Değeri
Sunucu denetimi için tam tanımlayıcı.
- Öznitelikler
Örnekler
Aşağıdaki örnek bir ArrayList nesne oluşturur ve bunu üç metin dizesiyle doldurur, ardından sayfa yüklendiğinde içindeki verilere ArrayList bir Repeater Web sunucusu denetimi bağlar. Kod, veri bağlama sırasında oluşturulan her alt denetimin özelliğini alır UniqueID . Kod, denetimin Label üç sürümünü oluşturur ve özellik değerlerini sayfaya yazar UniqueID
.
<script language="c#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("Container: " +
MyDataList.NamingContainer.ToString() + "<p>");
ArrayList a = new ArrayList();
a.Add("A");
a.Add("B");
a.Add("C");
MyDataList.DataSource = a;
MyDataList.DataBind();
for (int i = 0; i < MyDataList.Controls.Count; i++)
{
Label l =
(Label)((RepeaterItem)MyDataList.Controls[i]).FindControl("MyLabel");
sb.Append("Container: " +
((RepeaterItem)MyDataList.Controls[i]).NamingContainer.ToString() +
"<p>");
sb.Append("<b>" + l.UniqueID + "</b><p>");
}
ResultsLabel.Text = sb.ToString();
}
</script>
<script language="vb" runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim sb As New StringBuilder()
sb.Append("Container: " + _
MyDataList.NamingContainer.ToString() + "<p>")
Dim a As New ArrayList()
a.Add("A")
a.Add("B")
a.Add("C")
MyDataList.DataSource = a
MyDataList.DataBind()
Dim i As Integer
Dim l As Label
For i = 0 To MyDataList.Controls.Count - 1
l = CType(CType(MyDataList.Controls(i), RepeaterItem).FindControl("MyLabel"), Label)
sb.Append("Container: " & _
CType(MyDataList.Controls(i), RepeaterItem).NamingContainer.ToString() & _
"<p>")
sb.Append("<b>" & l.UniqueID.ToString() & "</b><p>")
Next
ResultsLabel.Text = sb.ToString()
End Sub
</script>
Açıklamalar
Bu özellik özelliğinden ID farklıdır, çünkü UniqueID özelliği sunucu denetiminin adlandırma kapsayıcısının tanımlayıcısını içerir. Bu tanımlayıcı, bir sayfa isteği işlendiğinde otomatik olarak oluşturulur.
Bu özellik, yinelenen bir veri bağlama sunucu denetiminde yer alan sunucu denetimlerinin farklılaştırılmasında özellikle önemlidir. , , DataList, FormViewDetailsViewve GridView Web sunucusu denetimleri (Repeaterveya veri bağlı olduğunda yinelenen işlevler içeren oluşturduğunuz herhangi bir özel sunucu denetimi) olan yinelenen denetim, alt denetimleri için adlandırma kapsayıcısı görevi görür. Bu, özellik değerlerinin çakışmaması için alt denetimleri ID için benzersiz bir ad alanı oluşturduğu anlamına gelir.
Örneğin, bir sunucu denetimine bir ASP.NET Label Web sunucusu denetimi Repeater eklerseniz ve denetime Label bir ID özellik değeri MyLabel
atarsanız ve öğesinin Repeater bir ID değerini MyRepeater
atarsanız. 'a üç girişli bir nesneye Repeater veri bağlarsanız, sunucu denetimlerinin her örneği için sonuçta elde Label edilen UniqueID özellikler , MyRepeater$ctl01$MyLabel
ve MyRepeater$ctl02$MyLabel
olurMyRepeater$ctl00$MyLabel
.ArrayList