Compartilhar via


Control.UniqueID Propriedade

Definição

Obtém o identificador exclusivo, qualificado segundo a hierarquia, para o controle de servidor.

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

Valor da propriedade

O identificador totalmente qualificado para o controle de servidor.

Atributos

Exemplos

O exemplo a seguir cria um ArrayList objeto e o preenche com três cadeias de caracteres de texto e associa um Repeater controle de servidor Web aos dados no quando ArrayList a página é carregada. O código obtém a UniqueID propriedade para cada controle filho gerado durante a associação de dados. O código gera três versões do Label controle e grava seus UniqueID valores de propriedade na página.

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

Comentários

Essa propriedade difere da ID propriedade , pois a UniqueID propriedade inclui o identificador para o contêiner de nomenclatura do controle de servidor. Esse identificador é gerado automaticamente quando uma solicitação de página é processada.

Essa propriedade é particularmente importante na diferenciação de controles de servidor contidos em um controle de servidor de associação de dados que se repete. O controle repetido, que são Repeater, DataList, DetailsView, FormViewe GridView controles de servidor Web (ou quaisquer controles de servidor personalizados que você criar que incluem funcionalidade recorrente quando associados a dados), serve como o contêiner de nomenclatura para seus controles filho. Isso significa que ele cria um namespace exclusivo para seus controles filho para que seus valores de propriedade não entrem ID em conflito.

Por exemplo, se você incluir um ASP.NET Label controle de servidor Web em um Repeater controle de servidor e atribuir ao Label controle um ID valor de propriedade de MyLabele um RepeaterID de MyRepeater. Se você associar dados a Repeater um ArrayList objeto com três entradas, as propriedades resultantes UniqueID para cada instância dos controles do Label servidor serão MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabele MyRepeater$ctl02$MyLabel.

Aplica-se a

Confira também