Partager via


Control.UniqueID Propriété

Définition

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é

String

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 MyLabelproprié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$MyLabelet MyRepeater$ctl02$MyLabel.

S’applique à

Voir aussi