Control.UniqueID Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera unikatowy, hierarchicznie kwalifikowany identyfikator kontroli serwera.
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
Wartość właściwości
W pełni kwalifikowany identyfikator kontroli serwera.
- Atrybuty
Przykłady
Poniższy przykład tworzy ArrayList obiekt i wypełnia go trzema ciągami tekstowymi, a następnie wiąże kontrolkę Repeater serwera sieci Web z danymi w momencie ArrayList załadowania strony. Kod pobiera właściwość dla każdej kontrolki UniqueID podrzędnej wygenerowanej podczas powiązania danych. Kod generuje trzy wersje Label kontrolki i zapisuje ich UniqueID
wartości właściwości na stronie.
<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>
Uwagi
Ta właściwość różni się od ID właściwości, w której UniqueID właściwość zawiera identyfikator kontenera nazewnictwa kontrolki serwera. Ten identyfikator jest generowany automatycznie po przetworzeniu żądania strony.
Ta właściwość jest szczególnie ważna w rozróżnianiu kontrolek serwera zawartych w kontrolce serwera powiązania danych, która powtarza się. Powtarzana kontrolka, która to Repeaterkontrolka , , DataListDetailsView, FormViewi GridView serwer sieci Web (lub dowolne niestandardowe kontrolki serwera, które są tworzone, które obejmują powtarzającą się funkcjonalność po powiązaniu danych), służy jako kontener nazewnictwa dla kontrolek podrzędnych. Oznacza to, że tworzy unikatową przestrzeń nazw dla kontrolek podrzędnych, dzięki czemu ich ID wartości właściwości nie powodują konfliktu.
Jeśli na przykład uwzględnisz ASP.NET Label kontrolkę serwera sieci Web w kontrolce Repeater serwera, a następnie przypiszesz kontrolce ID Label wartość MyLabel
właściwości , i .ID MyRepeater
Repeater Jeśli powiążesz dane z Repeater ArrayList obiektem z trzema wpisami, wynikowe UniqueID właściwości dla każdego wystąpienia Label kontrolek serwera to MyRepeater$ctl00$MyLabel
, MyRepeater$ctl01$MyLabel
i MyRepeater$ctl02$MyLabel
.