В asp.net page_load происходит перед событием переключателя OnCheckedChanged - PullRequest
0 голосов
/ 07 октября 2011

У меня есть две кнопки-переключателя на моей странице asp.net, с AutoPostBack = True
Когда я нажимаю на любой из них, каждый из них устанавливает флаг SaveData=False

Однако, когда я нажимаю надля них сначала происходит событие page_load, поэтому событие page_load сохраняет данные, затем срабатывает событие radiobutton_OnCheckedChanged.

Как мне вызвать OnCheckedChanged до события page_load?

Ответы [ 5 ]

2 голосов
/ 07 октября 2011

Вы не можете.

Вам нужно прочитать о жизненном цикле страницы .

1 голос
/ 07 октября 2011

Трой - вам придется позаботиться об этом на стороне клиента (javascript / jquery).Ваш AutoPostBack = True заставляет форму выполнять обратную передачу, которая вызывает загрузку страницы.Все о том, как работают жизненный цикл страницы и события на стороне сервера.

1 голос
/ 07 октября 2011

Вы не можете запустить OnCheckedChanged до radiobutton_OnCheckedChanged, потому что это обычный жизненный цикл страницы.

Вы можете проверить в Page_Load, является ли Page.IsPostBack истинным или нет, и затем не сохранять (или сохранять) данные.

0 голосов
/ 08 октября 2011

Вы can't change order/sequence выполнения обработчика событий. Однако вы можете переместить код внутри page_load на другой event handler.

0 голосов
/ 07 октября 2011

Вы не можете всегда загружать страницу, прежде чем события могут быть запущены.Это связано с созданием элемента управления, просмотром управления состоянием, состоянием элемента управления и т. Д.

То, что вы хотите сделать в вашем Page_Load, выглядит примерно так:

if(!this.IsPostBack) 
{
   // Do the stuff you want on the initial page load
}

Все, что вы не хотят, чтобы происходило нажатие переключателей, поместите его в блок if {}.IsPostBack указывает, что страница обрабатывает событие обратной передачи, что происходит при нажатии одной из кнопок-переключателей.

...