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 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
Nell'esempio seguente viene creato un ArrayList oggetto e popolato con tre stringhe di testo, quindi viene associato un Repeater controllo server Web ai dati di ArrayList quando viene caricata la pagina. Il codice ottiene la UniqueID proprietà per ogni controllo figlio generato durante il data binding. Il codice genera tre versioni del Label controllo e scrive i relativi UniqueID
valori 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, ovvero RepeaterDataList, , DetailsViewFormView, e GridView i controlli server Web (o tutti i controlli server personalizzati creati che includono funzionalità ripetute quando sono associati 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 controllo un Label ID valore della proprietà e MyLabel
l'oggetto Repeater ID 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$MyLabel
e MyRepeater$ctl02$MyLabel
.