Control.UniqueID 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得伺服器控制的唯一、階層限定的識別碼。
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>
備註
此屬性與 property ID 不同, UniqueID 因為 property 包含伺服器控制項命名容器的識別碼。 當頁面請求被處理時,此識別碼會自動產生。
此特性對於區分資料綁定伺服器控制項中重複存在的資料綁定控制項時尤為重要。 重複控制項,分別為 Repeater、 DataList、 DetailsView、 FormView和 GridView Web server 控制項(或任何你建立的自訂伺服器控制項,包含在資料綁定時重複功能),作為其子控制項的命名容器。 這表示它會為子控制項建立獨特的命名空間,以避免屬性 ID 值衝突。
例如,如果你在伺服器控制中包含一個 ASP.NET Label 網頁伺服器控制項Repeater,並將控制項指派Label一個ID屬性值為 MyLabel,而 Repeater 的 MyRepeater則ID是 。 如果你將資料綁定到 一個RepeaterArrayList有三個項目的物件,伺服器控制項的每個實例Label所產生UniqueID的屬性是 MyRepeater$ctl00$MyLabel、 MyRepeater$ctl01$MyLabel、 MyRepeater$ctl02$MyLabel和 。