Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проблема с динамическими контролами / 7 сообщений из 7, страница 1 из 1
16.08.2006, 18:46
    #33923047
anna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
На aspx страничке есть dropdown, в который web-сервис возвращает данные. В зависимости от выбранного значения dropdown на страничку динамически выводятся контролы, состояние которых изменяется пользователем. Как я понимаю, для того чтобы можно было считать пользовательский ввод, нужно контролы добавлять в page init. Здесь проблема - для вывода контролов нужно знать значение из dropdown, которое появляется только в page load (on item changed для dropdown), т.е после выбора очередного значения в dropdown страничка обновляется неправильно. Как быть?

Заранее спасибо.
...
Рейтинг: 0 / 0
16.08.2006, 19:09
    #33923082
Dimon aka Manowar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Либо заново генерить контролы в обработчике SelectedItemChanged дропдоуна, либо смотреть, что выборано в дропдоуне в Page_Init с помощью Request.Form[yourDDL.UniqueID]

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
16.08.2006, 19:13
    #33923093
vinipuh@list.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Дело в том, что в page_init надо создавать динамические контролы для того чтобы нормально ViewState загрузился.

А когда у Вас происходит событе MyDropDown_SelectedChanged
вы меняете состав контролов на странице.

А вообще неплохо было бы почитать про жизненый цикл страницы
...
Рейтинг: 0 / 0
16.08.2006, 19:30
    #33923131
anna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Дело в том, что в page_init надо создавать динамические контролы для того чтобы нормально ViewState загрузился.

А когда у Вас происходит событе MyDropDown_SelectedChanged
вы меняете состав контролов на странице.

А вообще неплохо было бы почитать про жизненый цикл страницы

Я сейчас перерисовываю только в page_init. Если перерисовывать контролы по событию MyDropDown_SelectedChanged, как потом считать пользовательский ввод с этих контролов? ViewState не загрузится.
...
Рейтинг: 0 / 0
16.08.2006, 19:39
    #33923148
anna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Либо заново генерить контролы в обработчике SelectedItemChanged дропдоуна, либо смотреть, что выборано в дропдоуне в Page_Init с помощью Request.Form[yourDDL.UniqueID]


СПАСИБО! С UniqueID работает.
...
Рейтинг: 0 / 0
16.08.2006, 19:49
    #33923166
vinipuh@list.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Смотри. при первом запросе допустим MyDropDown.SelectedValue = 1
В соответсвии с этим грузится контролы (X,Y)
Далее страница рендерится и пользователь видит MyDropDown и  X,Y так??
 тперерь пользователь нажымает кнопочку MyButtonX на контроле X, которая подгружает контрол Z.
У тебя происходить PostBack
Сразу вызывается событие Page_Init
так как X,Y не инициализированны их нужно загрузить. Грузим.
Далее происходит LoadViewState, который замечательно отрабатывает. Далее происходит Page_Load, далее EVENTS
т.е. сробатывает событе MyButtonX_OnClick. В этом событии мы загружаем Z (Z = Page.LoadControl("c:\Z.ascx"); Page.Controls.Add(Z))
Дальше идет PageRender и пользователь видит уже страницу с 4мя контролами (MyDropDown, X,Y,Z). Теперь пользователь меняет MyDropDown.SelectedItem и идет пост бэк.
Далее:
Page_Init
{
Мы должны подгрузить уже X,Y,Z (как понять сколько и каких контролов нужно эт отдельная история)
}
Page_LoadViewState
{
Здесь все происходит хорошо
}
Page_Load
{
}
PageControlsEvents
{
MyDropDown_SelectedItemChanged()
{
   Удаляем ненужные контролы со страницы и добавляем нужные.
}
}
далее
Page_Render и.т.д


Вот в принципе корявое изложение жизненного цикла Page;)
...
Рейтинг: 0 / 0
17.08.2006, 10:15
    #33923816
anna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с динамическими контролами
Смотри. при первом запросе допустим MyDropDown.SelectedValue = 1
В соответсвии с этим грузится контролы (X,Y)
Далее страница рендерится и пользователь видит MyDropDown и X,Y так??
тперерь пользователь нажымает кнопочку MyButtonX на контроле X, которая подгружает контрол Z.
У тебя происходить PostBack
Сразу вызывается событие Page_Init
так как X,Y не инициализированны их нужно загрузить. Грузим.
Далее происходит LoadViewState, который замечательно отрабатывает. Далее происходит Page_Load, далее EVENTS
т.е. сробатывает событе MyButtonX_OnClick. В этом событии мы загружаем Z (Z = Page.LoadControl("c:\Z.ascx"); Page.Controls.Add(Z))
Дальше идет PageRender и пользователь видит уже страницу с 4мя контролами (MyDropDown, X,Y,Z). Теперь пользователь меняет MyDropDown.SelectedItem и идет пост бэк.
Далее:
Page_Init
{
Мы должны подгрузить уже X,Y,Z (как понять сколько и каких контролов нужно эт отдельная история)
}
Page_LoadViewState
{
Здесь все происходит хорошо
}
Page_Load
{
}
PageControlsEvents
{
MyDropDown_SelectedItemChanged()
{
Удаляем ненужные контролы со страницы и добавляем нужные.
}
}
далее
Page_Render и.т.д


Вот в принципе корявое изложение жизненного цикла Page;)


СПАСИБО!!!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проблема с динамическими контролами / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]