Condividi tramite


Control.UniqueID Proprietà

Definizione

Ottiene l'identificatore univoco qualificato gerarchicamente per il controllo server.

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

Valore della proprietà

String

Identificatore completo per il controllo server.

Attributi

Esempio

Nell'esempio seguente viene creato un ArrayList oggetto e popolato con tre stringhe di testo, quindi viene associato un Repeater controllo server Web ai dati di ArrayList quando viene caricata la pagina. Il codice ottiene la UniqueID proprietà per ogni controllo figlio generato durante il data binding. Il codice genera tre versioni del Label controllo e scrive i relativi UniqueID valori delle proprietà nella pagina.

<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>

Commenti

Questa proprietà è diversa dalla ID proprietà , in quanto la UniqueID proprietà include l'identificatore per il contenitore di denominazione del controllo server. Questo identificatore viene generato automaticamente quando viene elaborata una richiesta di pagina.

Questa proprietà è particolarmente importante per differenziare i controlli server contenuti in un controllo server di associazione dati che si ripete. Il controllo ripetuto, ovvero RepeaterDataList, , DetailsViewFormView, e GridView i controlli server Web (o tutti i controlli server personalizzati creati che includono funzionalità ripetute quando sono associati a dati), funge da contenitore di denominazione per i controlli figlio. Ciò significa che crea uno spazio dei nomi univoco per i controlli figlio in modo che i valori ID delle proprietà non siano in conflitto.

Ad esempio, se si include un controllo server Web ASP.NET Label in un Repeater controllo server e si assegna al controllo un Label ID valore della proprietà e MyLabell'oggetto Repeater ID di MyRepeater. Se si associano dati a Repeater un ArrayList oggetto con tre voci, le proprietà risultanti UniqueID per ogni istanza dei Label controlli server sono MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabele MyRepeater$ctl02$MyLabel.

Si applica a

Vedi anche