Control.UniqueID Свойство

Определение

Возвращает уникальный идентификатор серверного элемента управления в иерархии.

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

Значение свойства

String

Полный идентификатор серверного элемента управления.

Атрибуты

Примеры

В следующем примере создается ArrayList объект и заполняется тремя текстовыми строками, а затем привязывает Repeater элемент управления веб-сервера к данным при ArrayList загрузке страницы. Код получает свойство для каждого дочернего UniqueID элемента управления, созданного во время привязки данных. Код создает три версии Label элемента управления и записывает их UniqueID значения свойств на страницу.

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

Комментарии

Это свойство отличается от ID свойства, так как UniqueID оно содержит идентификатор контейнера именования серверного элемента управления. Этот идентификатор создается автоматически при обработке запроса страницы.

Это свойство особенно важно для различения серверных элементов управления, содержащихся в серверном элементе управления привязки данных, который повторяется. Повторяющийся элемент управления, такие как Repeater, DataList, FormViewDetailsViewи GridView веб-серверные элементы управления (или любые пользовательские серверные элементы управления, которые включают повторяющиеся функциональные возможности при привязке данных), служит контейнером именования для его дочерних элементов управления. Это означает, что он создает уникальное пространство имен для дочерних элементов управления, чтобы их ID значения свойств не конфликтовали.

Например, если вы включаете ASP.NET Label веб-серверный элемент управления в Repeater серверный элемент управления, а также присваиваете Label ему ID значение MyLabelсвойства и Repeater значение типа ID MyRepeater. При привязке данных к Repeater объекту ArrayList с тремя записями результирующие UniqueID свойства для каждого экземпляра серверных Label элементов управления имеют значение MyRepeater$ctl00$MyLabel, и .MyRepeater$ctl02$MyLabel``MyRepeater$ctl01$MyLabel

Применяется к

См. также раздел