Control.UniqueID Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient l'identificateur unique qualifié sur le plan hiérarchique du contrôle serveur.
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
Valeur de propriété
Identificateur complet du contrôle serveur.
- Attributs
Exemples
L’exemple suivant crée un ArrayList objet et le remplit avec trois chaînes de texte, puis lie un Repeater contrôle de serveur Web aux données du ArrayList moment où la page est chargée. Le code obtient la propriété pour chaque contrôle enfant généré pendant la UniqueID liaison de données. Le code génère trois versions du Label contrôle et écrit leurs UniqueID
valeurs de propriété dans la page.
<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>
Remarques
Cette propriété diffère de la ID propriété, car elle inclut l’identificateur UniqueID du conteneur d’affectation de noms du contrôle de serveur. Cet identificateur est généré automatiquement lorsqu’une demande de page est traitée.
Cette propriété est particulièrement importante dans la différenciation des contrôles serveur contenus dans un contrôle de serveur de liaison de données qui se répète. Le contrôle répétitif, qui est Repeater, , DataListDetailsView, et GridView FormViewles contrôles serveur Web (ou tous les contrôles serveur personnalisés que vous créez qui incluent des fonctionnalités répétées lorsque les données liées) servent de conteneur d’affectation de noms pour ses contrôles enfants. Cela signifie qu’il crée un espace de noms unique pour ses contrôles enfants afin que leurs ID valeurs de propriété ne soient pas en conflit.
Par exemple, si vous incluez un contrôle de serveur web ASP.NET Label dans un Repeater contrôle de serveur et affectez le Label contrôle une ID valeur de MyLabel
propriété , et l’un Repeater ID de MyRepeater
. Si vous liez des données à Repeater un ArrayList objet avec trois entrées, les propriétés obtenues UniqueID pour chaque instance des Label contrôles serveur sont MyRepeater$ctl00$MyLabel
, MyRepeater$ctl01$MyLabel
et MyRepeater$ctl02$MyLabel
.