Поделиться через


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

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

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

Атрибуты

Примеры

В следующем примере создается 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 свойство содержит идентификатор контейнера именования сервера. Этот идентификатор создается автоматически при обработке запроса страницы.

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

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

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

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