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é hiérarchiquement pour le 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 serveur Web aux données du ArrayList moment où la page est chargée. Le code obtient la UniqueID propriété de chaque contrôle enfant généré pendant la 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 UniqueID inclut l’identificateur du conteneur d’affectation de noms du contrôle 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 serveur de liaison de données qui se répète. Le contrôle répétitif, qui sont Repeater, , DataListDetailsView, FormViewet GridView les 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 sont liées), sert 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 serveur, puis affectez la Label valeur de IDMyLabelpropriété , et l’un IDRepeater 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$MyLabelet MyRepeater$ctl02$MyLabel.