Bagikan melalui


Control.UniqueID Properti

Definisi

Mendapatkan pengidentifikasi unik yang memenuhi syarat secara hierarkis untuk kontrol server.

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

Nilai Properti

Pengidentifikasi yang sepenuhnya memenuhi syarat untuk kontrol server.

Atribut

Contoh

Contoh berikut membuat ArrayList objek dan mengisinya dengan tiga string teks, lalu mengikat Repeater kontrol server Web ke data saat halaman dimuat ArrayList . Kode mendapatkan UniqueID properti untuk setiap kontrol anak yang dihasilkan selama pengikatan data. Kode ini menghasilkan tiga versi Label kontrol dan menulis nilai propertinya UniqueID ke halaman.

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

Keterangan

Properti ini berbeda dari ID properti , karena UniqueID properti menyertakan pengidentifikasi untuk kontainer penamaan kontrol server. Pengidentifikasi ini dihasilkan secara otomatis ketika permintaan halaman diproses.

Properti ini sangat penting dalam membedakan kontrol server yang terkandung dalam kontrol server pengikatan data yang berulang. Kontrol berulang, yaitu Repeaterkontrol server , DataList, DetailsView, FormView, dan GridView Web (atau kontrol server kustom apa pun yang Anda buat yang mencakup fungsi berulang saat data terikat), berfungsi sebagai kontainer penamaan untuk kontrol turunannya. Ini berarti bahwa ia membuat namespace unik untuk kontrol turunannya sehingga nilai propertinya ID tidak berkonflik.

Misalnya, jika Anda menyertakan kontrol server web ASP.NET Label dalam Repeater kontrol server, dan menetapkan Label nilai MyLabelproperti kontrol ID , dan RepeaterID dari MyRepeater. Jika Anda mengikat data ke RepeaterArrayList objek dengan tiga entri, properti yang UniqueID dihasilkan untuk setiap instans Label kontrol server adalah MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabel, dan MyRepeater$ctl02$MyLabel.

Berlaku untuk

Lihat juga