Я пытаюсь скрыть все панели на странице, когда нажатие кнопки происходит.
Это находится на форме веб-контента в основной странице.
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) { }
и это не работало также.
Какая-либо идея, что я пропускаю здесь?
вам необходимо рекурсивно пройти по дереву управления
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);
}
}
Панели динамические?
Вот то, что я только что пробовал ...
Создайте главную страницу только с одним заполнителем
asp: ContentPlaceHolder>
В default.aspx добавлены две панели и кнопка , и ваш первый фрагмент кода работал нормально ...
foreach (Control c в Page.Form.FindControl ("MainContent"). Controls) { if (c - панель) { c.Visible = false; }}