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 文本字符串填充该对象,然后将 Web 服务器控件绑定到 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 属性中包含服务器控件命名容器的标识符。 处理页面请求时,自动生成此标识符。
此属性在区分重复的数据绑定服务器控件中包含的服务器控件中尤其重要。 重复控件(即Repeater、DataList、DetailsView和 FormViewGridView Web 服务器控件) (或任何在数据绑定) 时创建的自定义服务器控件(包括重复功能)充当其子控件的命名容器。 这意味着它为其子控件创建唯一的命名空间,以便其 ID 属性值不冲突。
例如,如果在服务器控件中包含 ASP.NET Label Web 服务器控件,并分配Label控件ID的MyLabel
属性值和Repeater ID MyRepeater
属性值。Repeater 如果将数据绑定到Repeater具有三个ArrayList条目的对象,则服务器控件的每个实例Label的结果UniqueID属性为MyRepeater$ctl00$MyLabel``MyRepeater$ctl01$MyLabel
,以及MyRepeater$ctl02$MyLabel
。