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

屬性值

伺服器控制項的完整識別項。

屬性

範例

下列範例會建立 物件,並填入三個 ArrayListRepeater 文字字串,然後在載入頁面時,將 Web 服務器控制項系結至 中的資料 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 屬性中包含伺服器控制項命名容器的識別碼。 處理頁面要求時,會自動產生此識別碼。

此屬性在區分重復資料系結伺服器控制項中包含的伺服器控制項時特別重要。 重複控制項,也就是 RepeaterDataListDetailsViewFormViewGridView Web 服務器控制項 (或任何您在資料系結) 時包含重複功能的自訂伺服器控制項,做為其子控制項的命名容器。 這表示它會為其子控制項建立唯一的命名空間, ID 使其屬性值不會衝突。

例如,如果您在伺服器控制項中包含 ASP.NET Label Web 服務器控制項,並將 的 屬性值 MyLabel 指派給 Label 控制項 ID , 和 的 RepeaterIDMyRepeaterRepeater 如果您將資料系結至 Repeater 具有三個專案 ArrayList 的物件,則每個伺服器控制項實例 Label 的結果 UniqueID 屬性為 MyRepeater$ctl00$MyLabelMyRepeater$ctl01$MyLabelMyRepeater$ctl02$MyLabel

適用於

另請參閱