Control.UniqueID Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 MyLabel
y 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$MyLabel
y MyRepeater$ctl02$MyLabel
.