Control.UniqueID 속성

정의

서버 컨트롤에 대해 계층적으로 정규화된 고유 식별자를 가져옵니다.Gets the unique, hierarchically qualified identifier for the server control.

public:
 virtual property System::String ^ UniqueID { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual string UniqueID { get; }
member this.UniqueID : string
Public Overridable ReadOnly Property UniqueID As String

속성 값

서버 컨트롤에 대한 정규화된 식별자입니다.The fully qualified identifier for the server control.

특성

예제

다음 예제에서는 ArrayList 개체를 만들어 세 개의 텍스트 문자열로 채운 다음 페이지가 로드 될 때 Repeater 웹 서버 컨트롤을 ArrayList의 데이터에 바인딩합니다.The following example creates an ArrayList object and populates it with three text strings, then binds a Repeater Web server control to the data in the ArrayList when the page is loaded. 코드는 데이터 바인딩 중에 생성 된 각 자식 컨트롤에 대 한 UniqueID 속성을 가져옵니다.The code gets the UniqueID property for each child control generated during data binding. 이 코드는 세 가지 버전의 Label 컨트롤을 생성 하 고 페이지에 UniqueID 속성 값을 씁니다.The code generates three versions of the Label control and writes their UniqueID property values to the 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>

설명

UniqueID 속성은 서버 컨트롤의 명명 컨테이너에 대 한 식별자를 포함 한다는 점에서이 속성은 ID 속성과는 다릅니다.This property differs from the ID property, in that the UniqueID property includes the identifier for the server control's naming container. 이 식별자는 페이지 요청이 처리 될 때 자동으로 생성 됩니다.This identifier is generated automatically when a page request is processed.

이 속성은 반복 되는 데이터 바인딩 서버 컨트롤에 포함 된 서버 컨트롤을 차별화 하는 데 특히 중요 합니다.This property is particularly important in differentiating server controls contained within a data-binding server control that repeats. Repeater, DataList, DetailsView, FormView, GridView 웹 서버 컨트롤 (또는 데이터 바인딩될 때 반복 기능을 포함 하는 사용자 지정 서버 컨트롤)의 반복 컨트롤은 자식의 명명 컨테이너 역할을 합니다. 제어가.The repeating control, which are Repeater, DataList, DetailsView, FormView, and GridView Web server controls (or any custom server controls that you create that include repeating functionality when data bound), serves as the naming container for its child controls. 즉, 해당 ID 속성 값이 충돌 하지 않도록 자식 컨트롤에 대 한 고유한 네임 스페이스를 만듭니다.This means that it creates a unique namespace for its child controls so that their ID property values do not conflict.

예를 들어, Repeater 서버 컨트롤에 ASP.NET Label 웹 서버 컨트롤을 포함 하 고 Label 컨트롤에 MyLabelID 속성 값을 할당 하 고 Repeater IDMyRepeater합니다.For example, if you include an ASP.NET Label Web server control in a Repeater server control, and assign the Label control an ID property value of MyLabel, and the Repeater an ID of MyRepeater. Repeater 데이터를 세 개의 항목을 사용 하 여 ArrayList 개체에 바인딩하는 경우 Label 서버 컨트롤의 각 인스턴스에 대해 생성 되는 UniqueID 속성은 MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabel, MyRepeater$ctl02$MyLabel입니다.If you bind data to the Repeater to an ArrayList object with three entries, the resulting UniqueID properties for each instance of the Label server controls are MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabel, and MyRepeater$ctl02$MyLabel.

적용 대상

추가 정보