Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.07.2004, 15:54
|
|||
|---|---|---|---|
|
|||
Последовательность обработки событий |
|||
|
#18+
Не могу понять как работает обработка событий. Если мне по нажатию кнопки надо поменять язык страницы: Нажимаем на кнопку private void btnLanguage_Click(object sender, System.EventArgs e) switch ( ddlLanguage.SelectedIndex ) { case 0: user.Language = "russian"; break; case 1: user.Language = "english"; break; } Как я понял порядок выполнения таков: сначала выполняется Page_Load, затем btnLanguage_Click. Получается если мне необходимо использовать новое значение user.Language в Page_Load тогда я пролетаю, потомучто оно еще не изменено функцией btnLanguage_Click. Я предполагал что функция btnLanguage_Click должна срабатывать сразуже, после начатие на клавишу, а затем уже все остальное. Можно ли поменять порядок выполнения, или как еще можно решить эту проблему, может у кого нибудь раньше бли аналогичные проблемы. Спасибо за ранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 16:23
|
|||
|---|---|---|---|
Последовательность обработки событий |
|||
|
#18+
Чего-то я не понемаю, ведь процедура Пэйджь Лоад не сбрасывает установленных значений! Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 16:26
|
|||
|---|---|---|---|
|
|||
Последовательность обработки событий |
|||
|
#18+
Max ProЧего-то я не понемаю, ведь процедура Пэйджь Лоад не сбрасывает установленных значений! Max Pro Она не сбрасывает, проблема в том что новое значение user.Language я получаю поздно. Сначало обрабатывается Page_Load, а затем функция Click, а мне надо наоборот, потомучто мне необходимо новое значение user.Language в Page_Load. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 16:43
|
|||
|---|---|---|---|
Последовательность обработки событий |
|||
|
#18+
Действия, выполняемые в Page_Load, можно вынести в отдельный метод и вызывать его еще и в обработчике. И на что собственно влият смена языка? Многие вещи связанные с изменением состояния и внешенго вида страницы имеет смысл делать в OnPreRender, когда уже все события отработали и есть гарантия что ничего не поменяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 17:38
|
|||
|---|---|---|---|
Последовательность обработки событий |
|||
|
#18+
Да это ж стандартный if (!Page.IsPostBack) { } а язык в сессионной переменной храни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 17:58
|
|||
|---|---|---|---|
|
|||
Последовательность обработки событий |
|||
|
#18+
Я согласен с USTAZZ. Если вы меняете язык, например, выбирая его из списка на форме, а затем щелкаете на кнопке btnLanguage, то в Page_load Вы видите НОВОЕ, т.е. выбранное вами значение ( и даже, при желании можете добраться до старого значения). Событие Page_Load предназначено именно для того, чтобы сделать Вам доступными заполненные поля формы. В конце концов, с самого начала Вам надо смириться с тем порядком обработки событий, который определен ASP и логику приложения строить исходя из этого. Вы могли бы, например изменить user.Language в Page_Load и тогда в btnLanguage делать остальную обработку. Еще есть масса путей, например все делать в Page_Load. Вообщем-то большинство остальных событий и не нужны, а введены для удобства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2004, 18:40
|
|||
|---|---|---|---|
Последовательность обработки событий |
|||
|
#18+
Небольшое напоминание: При Page_Load дерево контролов построено, viewstate загружен, но обработчики еще не вызывались. В OnPreRender все обработчики вызваны, но viewstate не сохранен. Так что в момент Page_Load мы видим состояние, оставшееся с предыдущей загрузки страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.07.2004, 14:44
|
|||
|---|---|---|---|
|
|||
Последовательность обработки событий |
|||
|
#18+
Спасибо всем за помощь! Сейчас я сделал так что скрипт вызывается по новой из btnSave_Click с помощью Response.Redirect ("default.aspx"); Значения все обновляются, а также не показывается эта нудная табличка в IE "The page cannot be refreshed without resending the information....RETRY CANCEL" Может не совсем красивое решение, но в принципе меня устраивает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1395377]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 408ms |

| 0 / 0 |
