Цикл через все пользовательские элементы управления на странице

Хочу циклично выполниться через все пользовательские элементы управления, которые существуют на странице и получают их идентификаторы. Как я делаю это?

5
задан Henk Holterman 13 April 2010 в 18:53
поделиться

3 ответа

Чтобы получить каждый пользовательский элемент управления, вам нужно будет протестировать Тип элемента управления:

РЕДАКТИРОВАТЬ: Я изменил свой пример, чтобы рекурсивно проходить все элементы управления:

Метод

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);
11
ответ дан 18 December 2019 в 09:05
поделиться
foreach(Control control: Page.Controls)
{

    //do something with control object

}
2
ответ дан 18 December 2019 в 09:05
поделиться

Это должно сработать:

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;
}
3
ответ дан 18 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: