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
Значение свойства
Полный идентификатор серверного элемента управления.
- Атрибуты
Примеры
В следующем примере создается 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>
Комментарии
Это свойство отличается от ID свойства, так как UniqueID оно содержит идентификатор контейнера именования серверного элемента управления. Этот идентификатор создается автоматически при обработке запроса страницы.
Это свойство особенно важно для различения серверных элементов управления, содержащихся в серверном элементе управления привязки данных, который повторяется. Повторяющийся элемент управления, такие как Repeater, DataList, FormViewDetailsViewи GridView веб-серверные элементы управления (или любые пользовательские серверные элементы управления, которые включают повторяющиеся функциональные возможности при привязке данных), служит контейнером именования для его дочерних элементов управления. Это означает, что он создает уникальное пространство имен для дочерних элементов управления, чтобы их ID значения свойств не конфликтовали.
Например, если вы включаете ASP.NET Label веб-серверный элемент управления в Repeater серверный элемент управления, а также присваиваете Label ему ID значение MyLabel
свойства и Repeater значение типа ID MyRepeater
. При привязке данных к Repeater объекту ArrayList с тремя записями результирующие UniqueID свойства для каждого экземпляра серверных Label элементов управления имеют значение MyRepeater$ctl00$MyLabel
, и .MyRepeater$ctl02$MyLabel``MyRepeater$ctl01$MyLabel