Control.UniqueID Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'identificatore univoco e qualificato gerarchicamente per il controllo server.
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
Valore della proprietà
Identificatore completo per il controllo server.
- Attributi
Esempio
L'esempio seguente crea un ArrayList oggetto e lo popola con tre stringhe di testo, quindi associa un Repeater controllo server Web ai dati in ArrayList quando viene caricata la pagina. Il codice ottiene la proprietà per ogni controllo figlio generato durante il UniqueID data binding. Il codice genera tre versioni del Label controllo e scrive i valori UniqueID delle proprietà nella pagina.
<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>
Commenti
Questa proprietà è diversa dalla ID proprietà , in quanto la UniqueID proprietà include l'identificatore per il contenitore di denominazione del controllo server. Questo identificatore viene generato automaticamente quando viene elaborata una richiesta di pagina.
Questa proprietà è particolarmente importante per differenziare i controlli server contenuti in un controllo server di associazione dati che si ripete. Il controllo ripetuto, che è Repeater, DataList, DetailsViewFormView, e GridView controlli server Web (o qualsiasi controllo server personalizzato creato che include funzionalità ripetute quando è associato a dati), funge da contenitore di denominazione per i controlli figlio. Ciò significa che crea uno spazio dei nomi univoco per i controlli figlio in modo che i valori ID delle proprietà non siano in conflitto.
Ad esempio, se si include un controllo server Web ASP.NET Label in un Repeater controllo server e si assegna al Label controllo un ID valore della proprietà di MyLabele l'oggetto RepeaterID di MyRepeater. Se si associano dati a Repeater un ArrayList oggetto con tre voci, le proprietà risultanti UniqueID per ogni istanza dei Label controlli server sono MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabele MyRepeater$ctl02$MyLabel.