ASP.Net - WebForms - Как избежать нескольких событий Page_Load при нажатии на ссылку - PullRequest
1 голос
/ 26 августа 2011

Я работаю над сайтом, используя ASP.Net C # WebForms Framework 3.5 Я использую главную страницу для дизайна, и внутри главной страницы у меня есть два пользовательских элемента управления для верхнего и нижнего колонтитула. Когда пользователь входит в систему, в Header Control появляется ссылка на событие Logoff и onClick, мы записали код выхода из системы в файле cs.

Когда мы щелкаем по нему, .net вызывает событие page_load WebForm, затем событие page_load главных страниц, затем события page_load всех пользовательских элементов управления, используемых на главной странице, и, наконец, вызывается событие click.

Как мы можем избежать этого? Я хочу избежать событий page_load.

Ответы [ 3 ]

3 голосов
/ 26 августа 2011

Этого нельзя избежать, так как работает жизненный цикл asp.net . Тем не менее, вы должны поместить свой код под !IsPostBack

 protected void Page_Load(object sender, EventArgs e)
 {
   if (!IsPostBack)
   {
      // put your code here..
   }
 }
2 голосов
/ 26 августа 2011

Архитектура asp.net работает следующим образом. Вы не можете это изменить.

Но вы можете использовать другой подход.

Вместо обратной передачи, когда вы нажимаете на кнопку, вы можете вызвать веб-службунепосредственно со стороны клиента (из javascript).

Или вам нужно следовать asp.net MVC.

1 голос
/ 26 августа 2011

используйте следующий код:

protected void Page_Load(object sender, EventArgs e)
{
     if(!IsPostBack)
{
//code part
}
}
...