Compartir vía


Control.UniqueID Propiedad

Definición

Obtiene el identificador único calificado jerárquicamente para el control 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 de propiedad

String

Identificador completo del control de servidor.

Atributos

Ejemplos

En el ejemplo siguiente se crea un ArrayList objeto y se rellena con tres cadenas de texto y, a continuación, se enlaza un Repeater control de servidor web a los datos de ArrayList cuando se carga la página. El código obtiene la UniqueID propiedad de cada control secundario generado durante el enlace de datos. El código genera tres versiones del Label control y escribe sus UniqueID valores de propiedad en la 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>

Comentarios

Esta propiedad difiere de la ID propiedad , en que la UniqueID propiedad incluye el identificador del contenedor de nomenclatura del control de servidor. Este identificador se genera automáticamente cuando se procesa una solicitud de página.

Esta propiedad es especialmente importante para diferenciar los controles de servidor contenidos en un control de servidor de enlace de datos que se repite. El control de repetición, que son Repeater, DataList, DetailsView, FormViewy GridView controles de servidor web (o cualquier control de servidor personalizado que cree que incluya la funcionalidad de repetición cuando se enlazan los datos), actúa como contenedor de nomenclatura para sus controles secundarios. Esto significa que crea un espacio de nombres único para sus controles secundarios para que sus ID valores de propiedad no entren en conflicto.

Por ejemplo, si incluye un control de servidor web ASP.NET Label en un Repeater control de servidor y asigna al Label control un ID valor de propiedad de MyLabely el Repeater de ID MyRepeater. Si enlaza datos a Repeater un ArrayList objeto con tres entradas, las propiedades resultantes UniqueID para cada instancia de los Label controles de servidor son MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabely MyRepeater$ctl02$MyLabel.

Se aplica a

Consulte también