Control.UniqueID Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 MyLabel
e 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$MyLabel
e MyRepeater$ctl02$MyLabel
.