Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Доступ к элементам UpdatePanel из внешнего кода


Автор: profnight 17.1.2010, 01:53
На странице имеется 2 поля: UpdatePanel1 и UpdatePanel2. 
UpdatePanel1 содержит набор элементов DropDownList, связанных посредством ajaxtoolkit:CascadinDropDown (в связке 6 дропов), заполняются пользователем на основе запросов БД. 
UpdatePanel2 содержит набор DropDownList, заполненных через <asp:ListItem Value=""Text ="">. 
Задача заключается в том, чтобы в случае выбора пользователем связки дропов, автоматически устанавливать значения SelectedIndex DropDownList в UpdatePanel2 по результату выбора последнего или предпоследнего дропа из UpdatePanel1, после чего обновлять UpdatePanel2 и блокировать к нему доступ пользователя.

Обрабатываются элементы DropDownList в файле ~/App_Code/GetCascad.cs (<ajaxtoolkit:cascadingdropdown ServicePath="Cascad.asmx"), соответсвенно прямого доступа к asp-элементам .aspx страницы нет. 

Пока в голову приходит мысль, что нужно через Page получать доступ к элементу управления asp:ScriptManager, а из него посредством RegisterDataItem изменять элементы в UpdatePanel2 и далее через <Triggers> управлять панелью.
Путь несколько извращенный, поэтому решил спросить совет у тех, кто сталкивался и знает, как можно решить данных вопрос.  

Сразу оговорюсь, что исключаю решение с размещением кнопки на странице, обработчик нажатия которой будет получать данные из ~/App_Code/GetCascad.cs и настраивать элементы DropDownList в UpdatePanel2. (как вариант, данный метод возможен, но с программной имитацией нажатия кнопки при Visible = "false") 
Применять совсем тупиковое решение – обрабатывать события таймера – так же не хотелось бы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)