Ottiene l'identificatore univoco qualificato gerarchicamente per il controllo server.
Assembly: System.Web (in System.Web.dll)
<BrowsableAttribute(False)> _ Public Overridable ReadOnly Property UniqueID As String Get
[BrowsableAttribute(false)] public virtual string UniqueID { get; }
[BrowsableAttribute(false)] public: virtual property String^ UniqueID { String^ get (); }
[<BrowsableAttribute(false)>] abstract UniqueID : string [<BrowsableAttribute(false)>] override UniqueID : string
A differenza della proprietà ID, la proprietà UniqueID include l'identificatore per il contenitore dei nomi del controllo server. L'identificatore è generato automaticamente quando viene elaborata una richiesta di pagina.
Questa proprietà è particolarmente importante per distinguere i controlli server contenuti in un controllo server con associazione a dati ripetuto. I controlli ripetuti, che sono i controlli server Web Repeater, DataList, DetailsView, FormView e GridView o i controlli server personalizzati creati dall'utente per includere funzionalità ripetute quando sono associati ai dati, fungono da contenitori dei nomi per i controlli figlio. Questi tipi di controllo creano uno spazio dei nomi univoco per i controlli figlio in modo che i relativi valori della proprietà ID non siano in conflitto.
Ad esempio, si supponga di includere un controllo server Web ASP.NET Label in un controllo server Repeater e di assegnare al controllo Label un valore della proprietà ID uguale a MyLabel e al controllo Repeater un ID uguale a MyRepeater. Se si esegue l'associazione dati per il controllo Repeater a un oggetto ArrayList con tre voci, le proprietà UniqueID risultanti per ciascuna istanza dei controlli server Label sono MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabel e MyRepeater$ctl02$MyLabel.
Nell'esempio riportato di seguito viene creato un oggetto ArrayList e viene compilato con tre stringhe di testo, quindi i dati in ArrayList vengono associati a un controllo server Web Repeater quando la pagina viene caricata. Il codice ottiene la proprietà UniqueID per ogni controllo figlio generato durante l'associazione dati. Il codice genera tre versioni del controllo Label e scrive i relativi valori della proprietà UniqueID nella pagina.
<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>
<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>
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.