Хочу циклично выполниться через все пользовательские элементы управления, которые существуют на странице и получают их идентификаторы. Как я делаю это?
Чтобы получить каждый пользовательский элемент управления, вам нужно будет протестировать Тип элемента управления:
РЕДАКТИРОВАТЬ: Я изменил свой пример, чтобы рекурсивно проходить все элементы управления:
Метод
public void GetUserControls(ControlCollection controls)
{
foreach (Control ctl in controls)
{
if (ctl is UserControl)
{
// Do whatever.
}
if (ctl.Controls.Count > 0)
GetUserControls(ctl.Controls);
}
}
Вызывается
GetUserControls(Page.Controls);
foreach(Control control: Page.Controls)
{
//do something with control object
}
Это должно сработать:
var listOfUserControls = GetUserControls(Page);
...
public List<UserControl> GetUserControls(Control ctrl)
{
var uCtrls = new List<UserControl>();
foreach (Control child in ctrl.Controls) {
if (child is UserControl) uCtrls.Add((UserControl)child);
uCtrls.AddRange(GetUserControls(child);
}
return uCtrls;
}