Практическое руководство. Прием событий в приложениях Web Forms
Обновлен: Ноябрь 2007
Распространенным сценарием в приложениях Web Forms является заполнение веб-страницы элементами управления и последующее выполнение определенных действий в зависимости от того, какой элемент управления выбрал пользователь. К примеру, когда пользователь нажимает элемент управления System.Web.UI.WebControls.Button, расположенный на веб-странице, создается событие. При обработке событие, приложение может выполнить соответствующую логику приложения с нажатием этой кнопки.
Сведения о модели программирования Web Forms содержатся в разделе Программирование страниц Web Forms.
Для обработки нажатия кнопки на веб-странице выполните следующие действия.
Создайте страницу Web Forms (страницу ASP.NET), содержащую элемент управления Button.
<asp:Button id = "Button" Text = "Click Me" runat = server/>
Определите обработчик событий, соответствующий подписи делегата события Click. Событие Click использует класс EventHandler для типа делегата и класс EventArgs для данных события.
void Button_Click(object sender, EventArgs e) {...}
Sub Button_Click(sender As Object, e As EventArgs) ... End Sub
Установите в качестве значения атрибута OnClick элемента Button метод, обрабатывающий событие.
<asp:Button id = "Button" OnClick = "Button_Click" Text = "Click Me" runat = server/>
Примечание.
Как показано выше, разработчик приложения Web Forms может заставить событие работать декларативно, без непосредственного взаимодействия с делегатом. Платформа, на которой работает страница ASP.NET, генерирует код, создающий экземпляр делегата EventHandler, который ссылается на событие Button_Click, и добавляет его в событие Click экземпляра Button.
Пример
Следующая страница Web Forms обрабатывает событие Click элемента управления Button, изменяя фоновый цвет поля TextBox. В этом примере жирным шрифтом выделен код обработчика событий и код, связывающий этот обработчик с событием Click элемента управления Button.
![]() |
---|
В данном примере имеется текстовое поле, принимающее вводимые пользователем данные —это потенциальная угроза безопасности. По умолчанию веб-страницы ASP.NET проверяют введенные пользователем данные на наличие сценариев и элементов HTML. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев. |
[C#]
<html>
<script language="C#" runat=server>
private void Button_Click(object sender, EventArgs e){ Box.BackColor = System.Drawing.Color.LightGreen; }
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
<html>
<script language="VB" runat=server>
Private Sub Button_Click(sender As Object, e As EventArgs) Box.BackColor = System.Drawing.Color.LightGreen
End Sub
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
Компиляция кода
Чтобы узнать, как в Web Forms обрабатываются события, сохраните страницу-пример в файле с расширением .aspx (которое указывает на то, что файл является страницей ASP.NET) и поместите его в любом месте виртуального корневого каталога служб IIS.