Поделиться через


Практическое руководство. Прием событий в приложениях Web Forms

Обновлен: Ноябрь 2007

Распространенным сценарием в приложениях Web Forms является заполнение веб-страницы элементами управления и последующее выполнение определенных действий в зависимости от того, какой элемент управления выбрал пользователь. К примеру, когда пользователь нажимает элемент управления System.Web.UI.WebControls.Button, расположенный на веб-странице, создается событие. При обработке событие, приложение может выполнить соответствующую логику приложения с нажатием этой кнопки.

Сведения о модели программирования Web Forms содержатся в разделе Программирование страниц Web Forms.

Для обработки нажатия кнопки на веб-странице выполните следующие действия.

  1. Создайте страницу Web Forms (страницу ASP.NET), содержащую элемент управления Button.

    <asp:Button id = "Button" Text = "Click Me" runat = server/>
    
  2. Определите обработчик событий, соответствующий подписи делегата события Click. Событие Click использует класс EventHandler для типа делегата и класс EventArgs для данных события.

    void Button_Click(object sender, EventArgs e)
    {...}
    
    Sub Button_Click(sender As Object, e As EventArgs)
    ...
    End Sub
    
  3. Установите в качестве значения атрибута OnClick элемента Button метод, обрабатывающий событие.

    <asp:Button
            id = "Button" OnClick = "Button_Click" Text = "Click Me" 
            runat = server/>
    
    58tf9b9h.alert_note(ru-ru,VS.90).gifПримечание.

    Как показано выше, разработчик приложения Web Forms может заставить событие работать декларативно, без непосредственного взаимодействия с делегатом. Платформа, на которой работает страница ASP.NET, генерирует код, создающий экземпляр делегата EventHandler, который ссылается на событие Button_Click, и добавляет его в событие Click экземпляра Button.

Пример

Следующая страница Web Forms обрабатывает событие Click элемента управления Button, изменяя фоновый цвет поля TextBox. В этом примере жирным шрифтом выделен код обработчика событий и код, связывающий этот обработчик с событием Click элемента управления Button.

58tf9b9h.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

В данном примере имеется текстовое поле, принимающее вводимые пользователем данные —это потенциальная угроза безопасности. По умолчанию веб-страницы 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.

См. также

Основные понятия

События и делегаты

Прием событий

Вызов события

Другие ресурсы

Обработка и вызов событий