aspx:
<
form
id
="form1"
runat
="server">
<
asp
:
Repeater
ID
="MyDataList"
runat
="server">
<
ItemTemplate
>
<
asp
:
Label
ID
="Mylbl"
runat
="server"></
asp
:
Label
>
</
ItemTemplate
>
</
asp
:
Repeater
>
<
asp
:
Label
ID
="ResultsLabel"
runat
="server"></
asp
:
Label
>
</
form
>
aspx.cs:
protected
void
Page_Load(
object
sender,
EventArgs
e)
{
StringBuilder
sb =
new
StringBuilder
();
//
获取
Repater
控件的命名控件
sb.Append(
"Container:a"
+ MyDataList.NamingContainer.ToString()+
"<p>"
);
ArrayList
arrList =
new
ArrayList
();
arrList.Add(
"a"
);
arrList.Add(
"b"
);
arrList.Add(
"c"
);
MyDataList.DataSource = arrList;
MyDataList.DataBind();
//
获取数据控件中集合的个数
for
(
int
i = 0; i < MyDataList.Controls.Count; i++)
{
Label
reLb= (
Label
)((
RepeaterItem
)MyDataList.Controls[i]).FindControl(
"Mylbl"
);
//
获取
lbl
控件的命名控件
sb.Append(
"Container:b"
+ ((
RepeaterItem
)MyDataList.Controls[i]).NamingContainer.ToString() +
"@@"
);
//
给
lbl
添加唯一标示
sb.Append(
"<b>"
+ reLb.UniqueID +
"</b><p>"
);
}
ResultsLabel.Text = sb.ToString();
}
运行结果:
属性注释:
此属性与 ID 属性不同,因为 UniqueID 属性包含服务器控件命名容器的标识符。 处理页请求时自动生成此标识符。
此属性对于区分包含在其他重复的数据绑定服务器控件中的服务器控件尤其重要。 重复控件包括 Repeater、DataList、DetailsView、FormView 和 GridView Web 服务器控件(或任何在数据绑定时创建的包含重复功能的自定义服务器控件),它们充当其子控件的命名容器。 这意味着它为其子控件创建唯一的命名空间,以使它们的 ID 属性值不冲突。