Я постараюсь быть максимально описательным здесь. У нас есть код, который работал, и теперь, без изменения, нет. Я выделил проблему, так вот ситуация:Странная новая ошибка с ASP: панель/UserControl/UpdatePanel комбинация
У нас есть страница ASPX, и на ней есть 2 asp: Элементы панели управления (Panel1 и Panel2). В каждой из этих панелей есть один WebUserControl (Panel1 содержит UserControl1, Panel2 содержит UserControl2). На этой странице есть инструментарий Scriptmanager AJAX, и все. Когда пользователь впервые посещает страницу, отображается панель 1, а панель 2 скрыта.
В UserControl1 есть asp: Panel, asp: Ярлык, содержащий asp: UpdatePanel и внутри него asp: Button. В коде позади есть делегат и событие для его повышения - при нажатии кнопки это событие запускается. Для этого события есть обработчик на странице ASPX, содержащей UserControl.
В panel2 есть жерех: UpdatePanel, осина: панель и осина: Label
Так на странице ASPX, при нажатии на кнопку в UserControl1, событие обрабатывается. Этот обработчик событий затем скрывает Panel1 и показывает Panel2. По крайней мере, это то, что ИСПОЛЬЗУЕТСЯ, но этого не происходит сейчас.
Итак, чтобы подвести итог - страница ASPX при первом посещении показывает Panel1 с UserControl1. В UserControl1 есть кнопка, Пользователь нажимает на это, что вызывает событие на странице ASPX, это должно скрыть Panel1 и показать Panel2.
Если вы удалите UpdatePanels из UserControl1 и UserControl2, код будет работать.
Очевидно, что наш код «реальной жизни» здесь сложнее, но этот небольшой пример показывает, где проблема.
Вот архивный файл, содержащий вопрос: http://test.wikisaber.es/testajax.zip
Спасибо Чарльз - У меня есть вопрос по этому поводу. Если UpdatePanel не обрабатывает событие как триггер, то почему в моем примере кода, когда я перехожу к нему в debug - событие DetailChanged увеличивается, и в пределах Default.aspx.cs код проходит через метод handler testUserControl1_DetailsChanged? –