Сокрытие всех панелей на веб-контенте формируется в основной странице

Я пытаюсь скрыть все панели на странице, когда нажатие кнопки происходит.

Это находится на форме веб-контента в основной странице.

contentplageholder называют: MainContent

Таким образом, я имею:

foreach (Control c in Page.Form.FindControl("MainContent").Controls) {
    if (c is Panel) {
        c.Visible = false;
    }
}

Это никогда не находит панелей. Панели в Панели Обновления, и я попробовал

foreach(Control c in updatePanel.Controls) { }

и это не работало также. Я также попробовал:

foreach(Control c in Page.Controls) { }

и это не работало также.

Какая-либо идея, что я пропускаю здесь?

1
задан Jack Marchetti 7 May 2010 в 16:29
поделиться

2 ответа

вам необходимо рекурсивно пройти по дереву управления

HidePanels(Page.Form.FindControl("MainContent"))

void HidePanels(Control parentControl){
   foreach (Control c in parentControl.Controls) {
      if (c is Panel) 
         c.Visible = false;
     if (c.Controls.Count > 0)
           HidePanels(c);
    }
}
2
ответ дан 3 September 2019 в 00:44
поделиться

Панели динамические?

Вот то, что я только что пробовал ...

  1. Создайте главную страницу только с одним заполнителем

      
     
      
     
  2. В default.aspx добавлены две панели и кнопка , и ваш первый фрагмент кода работал нормально ...

foreach (Control c в Page.Form.FindControl ("MainContent"). Controls) { if (c - панель) { c.Visible = false; }}

0
ответ дан 3 September 2019 в 00:44
поделиться
Другие вопросы по тегам:

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