Partager via


Control.UniqueID Propriété

Définition

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.

S’applique à

Voir aussi