Учебники

ASP.NET — обработка событий

Событие — это действие или событие, такое как щелчок мыши, нажатие клавиши, движения мыши или любое системное уведомление. Процесс общается через события. Например, прерывания являются сгенерированными системой событиями. Когда происходят события, приложение должно иметь возможность реагировать на него и управлять им.

События в ASP.NET вызываются на клиентском компьютере и обрабатываются на сервере. Например, пользователь нажимает кнопку, отображаемую в браузере. Событие Click происходит. Браузер обрабатывает это событие на стороне клиента, отправляя его на сервер.

На сервере есть подпрограмма, описывающая, что делать при возникновении события; это называется обработчиком событий. Поэтому, когда сообщение о событии передается на сервер, он проверяет, имеет ли событие Click связанный обработчик события. Если это так, обработчик события выполняется.

Аргументы событий

Обработчики событий ASP.NET обычно принимают два параметра и возвращают void. Первый параметр представляет объект, вызывающий событие, а второй параметр — аргумент события.

Общий синтаксис события:

private void EventName (object sender, EventArgs e);

События приложений и сессий

Наиболее важные события приложения:

  • Application_Start — возникает при запуске приложения / веб-сайта.

  • Application_End — возникает при остановке приложения / веб-сайта.

Application_Start — возникает при запуске приложения / веб-сайта.

Application_End — возникает при остановке приложения / веб-сайта.

Точно так же наиболее часто используемые события сеанса:

  • Session_Start — возникает, когда пользователь впервые запрашивает страницу из приложения.

  • Session_EndВозникает, когда сессия заканчивается.

Session_Start — возникает, когда пользователь впервые запрашивает страницу из приложения.

Session_EndВозникает, когда сессия заканчивается.

События страницы и управления

Общие страницы и управляющие события:

  • DataBinding — вызывается, когда элемент управления связывается с источником данных.

  • Уничтожено — поднимается, когда страница или элемент управления освобождаются.

  • Ошибка — это событие страницы, возникающее при возникновении необработанного исключения.

  • Init — вызывается при инициализации страницы или элемента управления.

  • Load — поднимается, когда страница или элемент управления загружены.

  • PreRender — вызывается, когда должна отображаться страница или элемент управления.

  • Выгрузить — поднимается, когда страница или элемент управления выгружаются из памяти.

DataBinding — вызывается, когда элемент управления связывается с источником данных.

Уничтожено — поднимается, когда страница или элемент управления освобождаются.

Ошибка — это событие страницы, возникающее при возникновении необработанного исключения.

Init — вызывается при инициализации страницы или элемента управления.

Load — поднимается, когда страница или элемент управления загружены.

PreRender — вызывается, когда должна отображаться страница или элемент управления.

Выгрузить — поднимается, когда страница или элемент управления выгружаются из памяти.

Обработка событий с использованием элементов управления

Все элементы управления ASP.NET реализованы в виде классов, и у них есть события, которые запускаются, когда пользователь выполняет над ними определенные действия. Например, когда пользователь нажимает кнопку, генерируется событие «Клик». Для обработки событий есть встроенные атрибуты и обработчики событий. Обработчик события закодирован, чтобы отвечать на событие и предпринимать соответствующие действия для него.

По умолчанию Visual Studio создает обработчик событий, добавляя предложение Handles в процедуру Sub. В этом разделе указывается элемент управления и событие, которое обрабатывает процедура.

Тег ASP для кнопки управления:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" />

Обработчик события для события Click:

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) 

   Handles btnCancel.Click
   
End Sub

Событие также может быть закодировано без предложения Handles. Затем обработчик должен быть назван в соответствии с соответствующим атрибутом события элемента управления.

Тег ASP для кнопки управления:

<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />

Обработчик события для события Click:

Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

Общие контрольные события:

Событие атрибут управления
Нажмите По щелчку Кнопка, кнопка изображения, кнопка ссылки, карта изображения
команда По команде Кнопка, кнопка изображения, кнопка ссылки
TextChanged OnTextChanged Текстовое окно
SelectedIndexChanged OnSelectedIndexChanged Выпадающий список, список, список переключателей, список флажков.
CheckedChanged OnCheckedChanged Флажок, переключатель

Некоторые события вызывают немедленную отправку формы на сервер, они называются событиями обратной передачи. Например, событие щелчка, например, Button.Click.

Некоторые события не публикуются на сервере немедленно, они называются событиями без обратной передачи.

Например, события изменения или события выбора, такие как TextBox.TextChanged или CheckBox.CheckedChanged. События nonpostback могут быть отправлены обратно немедленно, если для их свойства AutoPostBack установлено значение true.

События по умолчанию

Событием по умолчанию для объекта Page является событие загрузки. Точно так же каждый элемент управления имеет событие по умолчанию. Например, событием по умолчанию для элемента управления кнопки является событие Click.

Обработчик событий по умолчанию можно создать в Visual Studio, просто дважды щелкнув элемент управления в режиме конструктора. В следующей таблице приведены некоторые события по умолчанию для общих элементов управления:

контроль Событие по умолчанию
AdRotator AdCreated
Маркированный список Нажмите
кнопка Нажмите
каландр SelectionChanged
CheckBox CheckedChanged
CheckBoxList SelectedIndexChanged
DataGrid SelectedIndexChanged
DataList SelectedIndexChanged
Выпадающий список SelectedIndexChanged
Гиперссылка Нажмите
ImageButton Нажмите
ImageMap Нажмите
LinkButton Нажмите
ListBox SelectedIndexChanged
Меню MenuItemClick
Переключатель CheckedChanged
RadioButtonList SelectedIndexChanged

пример

Этот пример включает в себя простую страницу с элементом управления надписью и кнопкой. Когда происходят события страницы, такие как Page_Load, Page_Init, Page_PreRender и т. Д., Он отправляет сообщение, которое отображается элементом управления меткой. Когда кнопка нажата, возникает событие Button_Click, которое также отправляет сообщение для отображения на ярлыке.

Создайте новый веб-сайт и перетащите элемент управления меткой и элемент управления на него из панели инструментов элемента управления. Используя окно свойств, установите идентификаторы элементов управления как .lblmessage. и .btnclick. соответственно. Установите свойство Text элемента управления Button как «Клик».

Файл разметки (.aspx):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
   Inherits="eventdemo._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head runat="server">
      <title>Untitled Page</title>
   </head>
   
   <body>
      <form id="form1" runat="server">
         <div>
            <asp:Label ID="lblmessage" runat="server" >
            
            </asp:Label>
            
            <br />
            <br />
            <br />
            
            <asp:Button ID="btnclick" runat="server" Text="Click" onclick="btnclick_Click" />
         </div>
      </form>
   </body>
   
</html>

Дважды щелкните в представлении конструктора, чтобы перейти к коду позади файла. Событие Page_Load создается автоматически без какого-либо кода. Запишите следующие понятные строки кода:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

namespace eventdemo {

   public partial class _Default : System.Web.UI.Page {
   
      protected void Page_Load(object sender, EventArgs e) {
         lblmessage.Text += "Page load event handled. <br />";
         
         if (Page.IsPostBack) {
            lblmessage.Text += "Page post back event handled.<br/>";
         }
      }
      
      protected void Page_Init(object sender, EventArgs e) {
         lblmessage.Text += "Page initialization event handled.<br/>";
      }
      
      protected void Page_PreRender(object sender, EventArgs e) {
         lblmessage.Text += "Page prerender event handled. <br/>";
      }
      
      protected void btnclick_Click(object sender, EventArgs e) {
         lblmessage.Text += "Button click event handled. <br/>";
      }
   }
}

Выполнить страницу. Метка показывает загрузку страницы, инициализацию страницы и события предварительной визуализации страницы. Нажмите кнопку, чтобы увидеть эффект: