Control.UniqueID Control.UniqueID Control.UniqueID Control.UniqueID Property

定义

获取服务器控件的唯一的、以分层形式限定的标识符。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对象并填充三个文本字符串,然后将绑定RepeaterWeb 服务器控件中的数据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>

注解

此属性不同于ID中的属性UniqueID属性包含服务器控件的命名容器的标识符。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. 重复的控制,即RepeaterDataListDetailsViewFormView,和GridViewWeb 服务器控件 (或创建的包含数据绑定时重复功能的任何自定义服务器控件),可作为命名及其子控件的容器。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.

例如,如果包括 ASP.NET Label Web 服务器控件中的Repeater服务器控件,并将分配Label控件ID属性值MyLabel,和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. 如果数据绑定到RepeaterArrayList具有三个条目,所生成对象UniqueID属性的每个实例Label的服务器控件都MyRepeater$ctl00$MyLabelMyRepeater$ctl01$MyLabel,和MyRepeater$ctl02$MyLabelIf 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.

适用于

另请参阅