Control.UniqueID Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém o identificador único e hierarquicamente qualificado para o controlo do 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 Propriedade
O identificador totalmente qualificado para o controlo do servidor.
- Atributos
Exemplos
O exemplo seguinte cria um ArrayList objeto e preenche-o com três cadeias de texto, depois associa um Repeater controlo de servidor Web aos dados no ArrayList momento em que a página é carregada. O código recebe a UniqueID propriedade para cada controlo filho gerado durante a ligação de dados. O código gera três versões do Label controlo e escreve os 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>
Observações
Esta propriedade difere da ID propriedade, pois UniqueID inclui o identificador do contentor de nomes do controlo do servidor. Este identificador é gerado automaticamente quando um pedido de página é processado.
Esta propriedade é particularmente importante para diferenciar os controlos de servidor contidos num controlo de servidor de ligação de dados que se repete. O controlo de repetição, que são Repeater, DataList, DetailsView, FormView, e GridView controlos de servidor Web (ou quaisquer controlos personalizados de servidor que crie e que incluam funcionalidades de repetição quando dados vinculados), serve como o contentor de nomes para os seus controlos filhos. Isto significa que cria um namespace único para os seus controlos filhos, de modo a que os valores das propriedades ID não entrem em conflito.
Por exemplo, se incluir um controlo de servidor Web ASP.NET Label num controlo de servidor Repeater, e atribuir ao controlo Label um valor de propriedade ID de MyLabel, e o Repeater um ID de MyRepeater. Se atribuir dados a um RepeaterArrayList objeto com três entradas, as propriedades resultantes UniqueID para cada instância dos Label controlos do servidor são MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabel, e MyRepeater$ctl02$MyLabel.