UpdatePanel.Visible = true не влияет

Есть масштабная задача. Существует панель обновления upDetails, которая отображает таблицу деталей (изначально visible = false), когда пользователь выбирает любой элемент из главной таблицы, мы должны установить upDetails.Visible = true;

Но он не работает, в какое бы место/событие я его ни поместил - ни методы BL, ни предварительный рендеринг. Это все еще будет невидимым

Но когда я не делаю его изначально невидимым, все работает нормально

Что я делаю неправильно?

заранее спасибо


person Community    schedule 26.02.2009    source источник
comment
Взгляните на это: stackoverflow.com/ вопросы/2539204/   -  person andoni90    schedule 30.05.2012


Ответы (4)


Вы говорите об элементе управления ASP.NET Ajax UpdatePanel? Попробуйте поместить «настоящий» элемент управления Panel (asp:Panel) внутри UpdatePanel и установите видимость false/true для этого элемента управления и оставьте UpdatePanel видимым.

person splattne    schedule 26.02.2009
comment
Я обдумывал такой подход, если ничего другое не помогло бы, но мне интересно, почему так происходит и можно ли избежать добавления избыточной панели? - person ; 26.02.2009

Если для параметра видимости updatepanel задано значение false, он не отображается на выходе. Не визуализируясь, он не существует на стороне клиента, где его нельзя использовать (не событие с помощью ajax).

Использование заполнителя — это решение вашей проблемы.

person Sergejack    schedule 27.05.2011

Я долго и далеко искал, экспериментировал и, к сожалению, не смог заставить это работать. Мое окончательное решение состояло в том, чтобы обернуть содержимое, которое я хотел показать/скрыть, в элементы управления Placeholder. Они дают вам возможность переключать видимость без добавления разметки.

person ctorx    schedule 04.02.2010
comment
для сообщения от 4 февраля в 6:41 - не могли бы вы привести пример использования элементов управления-заполнителей? - person ; 18.02.2011
comment
Вы просто вставляете заполнитель (asp:placeholder) внутри панели обновления вокруг всего ее содержимого. Затем вместо того, чтобы устанавливать Visible на UpdatePanel, вы устанавливаете его на PlaceHolder. - person ctorx; 22.02.2011

Вы должны убедиться, что любой элемент управления, содержащий вашу панель, виден. Если это не так, установка свойства visible в элементе управления updatepanel ничего не даст, поэтому вам нужно будет убедиться, что элемент управления контейнера виден ПЕРВЫМ.

person Kelsey    schedule 04.03.2009