Итак, у меня есть UserControl
с каскадом DropDownList
s на нем. Выбор из списка 1 включает список 2, который, в свою очередь, включает список 3. После того, как вы сделали выбор во всех трех списках, вы можете перейти на следующую страницу.Обновление элемента управления за пределами UpdatePanel
DropDownList
s все внутри UpdatePanel
. Но кнопка «Следующая страница» находится за пределами UpdatePanel
. Эта кнопка должна быть отключена до тех пор, пока все три списка не будут выделены, а затем снова должны быть включены. Но поскольку кнопка находится за пределами UpdatePanel
, она не обновляется, когда я делаю выбор. (Edit: Кнопка «Следующая страница» находится на странице, которая также содержит UserControl
.)
Я знаю, что один из способов решения этой проблемы:
var scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.RegisterPostBackControl(dropDownList1);
scriptManager.RegisterPostBackControl(dropDownList2);
scriptManager.RegisterPostBackControl(dropDownList3);
Это обеспечивает постбэк, когда любой список раскрывающегося изменено, чтобы кнопка могла обновляться. Но если я сделаю это, я бы упростил, избавившись от UpdatePanel
в первую очередь.
Есть ли другой способ, с помощью какого-то умного JavaScript или что-то еще, что я могу обновить элемент управления вне UpdatePanel
без необходимости сдаваться Ajax?
Это самое близкое к тому, что я должен был сделать. Вместо триггера мне просто нужно было вызвать метод на главной странице (листинг this.Page), чтобы правильно установить кнопку «Далее». Мне также пришлось зарегистрироваться в программе RegisterPostBackControl на кнопке Next, чтобы заставить его работать внутри UpdatePanel. –