Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
На aspx страничке есть dropdown, в который web-сервис возвращает данные. В зависимости от выбранного значения dropdown на страничку динамически выводятся контролы, состояние которых изменяется пользователем. Как я понимаю, для того чтобы можно было считать пользовательский ввод, нужно контролы добавлять в page init. Здесь проблема - для вывода контролов нужно знать значение из dropdown, которое появляется только в page load (on item changed для dropdown), т.е после выбора очередного значения в dropdown страничка обновляется неправильно. Как быть? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 18:46 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Либо заново генерить контролы в обработчике SelectedItemChanged дропдоуна, либо смотреть, что выборано в дропдоуне в Page_Init с помощью Request.Form[yourDDL.UniqueID] Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:09 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Дело в том, что в page_init надо создавать динамические контролы для того чтобы нормально ViewState загрузился. А когда у Вас происходит событе MyDropDown_SelectedChanged вы меняете состав контролов на странице. А вообще неплохо было бы почитать про жизненый цикл страницы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:13 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Дело в том, что в page_init надо создавать динамические контролы для того чтобы нормально ViewState загрузился. А когда у Вас происходит событе MyDropDown_SelectedChanged вы меняете состав контролов на странице. А вообще неплохо было бы почитать про жизненый цикл страницы Я сейчас перерисовываю только в page_init. Если перерисовывать контролы по событию MyDropDown_SelectedChanged, как потом считать пользовательский ввод с этих контролов? ViewState не загрузится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:30 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Либо заново генерить контролы в обработчике SelectedItemChanged дропдоуна, либо смотреть, что выборано в дропдоуне в Page_Init с помощью Request.Form[yourDDL.UniqueID] СПАСИБО! С UniqueID работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:39 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Смотри. при первом запросе допустим 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;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:49 |
|
||
|
проблема с динамическими контролами
|
|||
|---|---|---|---|
|
#18+
Смотри. при первом запросе допустим 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;) СПАСИБО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 10:15 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1390524]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 515ms |

| 0 / 0 |
