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


Практическое руководство. Создание обработчиков событий на веб-страницах ASP.NET

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

При редактировании веб-страницы ASP.NET в Visual Studio можно разными способами создавать серверные обработчики событий для элементов управления и страницы. Некоторые из способов зависят от того, какой язык программирования используется. Создавать обработчики событий можно с помощью средств Visual Web Developer или можно создавать их декларативно или в коде.

6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

Можно также добавлять события к клиентским сценариям, которые выполняются при запуске элемента управления в веб-обозревателе в качестве элемента на странице. Дополнительные сведения см. в разделе Практическое руководство. Добавление событий клиентского сценария в серверные веб-элементы управления ASP.NET.

Если элемент управления поддерживает более чем одно событие, обычно он настраивается так, что одно из них является событием по умолчанию. Например, событием по умолчанию для элемента управления Button является событие Click.

Создание обработчиков событий в Visual Web Developer

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

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

    В Visual Web Developer создается обработчик для события по умолчанию и открывается редактор кода с точкой вставки в обработчике событий.

Создание обработчика событий в окне "Свойства"

  1. В представлении конструктора выберите элемент управления, для которого требуется создать обработчик событий.

    6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

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

  2. В окне Свойства щелкните символ событий Кнопка событий.

    В окне Свойства отобразится список событий для выбранного элемента управления.

  3. В поле рядом с именем события выполните одно из следующих действий:

    • Дважды щелкните, чтобы создать новый обработчик событий для этого события. Конструктор присвоит обработчику имя с помощью соглашения controlID_событие.

    • Введите имя создаваемого обработчика.

    • В раскрывающемся списке выберите имя существующего обработчика.

      Раскрывающийся список содержит методы, имеющие подходящую подпись для события.

    По окончании Visual Web Developer переключается в режим редактора кода и располагает точку вставки в обработчике.

Создание обработчика событий в редакторе кода

  1. Необходимо переключиться в режим редактора кода, используя один из следующих способов:

    • для веб-страницы, состоящей из одного файла, необходимо переключиться в представление исходного кода;

    • для страницы с выделенным кодом в обозревателе решений щелкните правой кнопкой мыши имя страницы, а затем выберите Просмотреть код.

      6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

      В страницах с выделенным кодом, использующих C#, этот способ не будет работать, так как имя элемента управления не появится в выпадающем списке на последнем шаге. Вместо этого воспользуйтесь другими процедурами.

  2. В верхней части окна редактора кода выберите элемент управления из раскрывающегося списка, расположенного слева, а затем выберите событие из раскрывающегося списка, расположенного с правой стороны.

    6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

    События, для которых уже существуют методы, выделены жирным шрифтом.

Декларативное создание обработчиков событий

При использовании Visual Web Developer для создания обработчика в Visual Web Developer создается "каркас" обработчика и настраивается элемент управления на вызов обработчика. Это можно сделать и самостоятельно, не используя Visual Web Developer.

Создание обработчика для событий страницы

  • В редакторе кода необходимо создать метод с именем Page_событие.

    Например, для создания обработчика событий Load можно создать метод с именем Page_Load.

    6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

    От обработчиков событий страницы не требуется принимать параметры таким способом, как другим элементам управления.

    Страницы ASP.NET автоматически привязывают события страницы к методам с именем Page_событие. Такая автоматическая привязка настраивается атрибутом AutoEventWireup в директиве @ Page, которой по умолчанию задается значение true. Если AutoEventWireup задать значение false, страница не будет автоматически искать методы, использующие соглашение именования Page_event.

    В следующем примере кода демонстрируется обработчик событий страницы Load:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack Then
            Response.Write("<br>Page has been posted back.")
        End If
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            Response.Write("<br>Page has been posted back.");
        }
    }
    

Декларативное добавление обработчика к элементу управления

  1. В редакторе кода необходимо создать метод обработки событий с соответствующей подписью.

    Метод может быть назван любым именем.

  2. В разметке элемента управления используйте атрибуты с именами On<имя события> для подключения к обработчику событий. В качестве значения используйте имя метода обработчика событий.

    В следующем примере кода демонстрируется разметка элемента управления TextBox, для которого событие TextChanged привязано к методу обработчика событий с именем NameChange.

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

    В данном примере имеется текстовое поле для ввода пользовательских данных, которые представляют потенциальную угрозу безопасности. По умолчанию на веб-страницах ASP.NET проверяются введенные пользователем данные на наличие сценариев и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

    Protected Sub NameChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged
        'Sub for the OnTextChanged event
    End Sub
    
    <asp:TextBox ID="textbox1" Runat="server" 
    Text="" 
    OnTextChanged="NameChange" />
    
  3. Добавьте метод события в код. Например, в следующем примере демонстрируется код для метода обработчика событий с именем NameChange:

    protected void NameChange(object sender, EventArgs e)
    {
        //Method for the OnTextChanged event.
    }
    

Неявное добавление обработчика событий в Visual Basic

  1. В редакторе кода необходимо создать метод обработки событий с соответствующей подписью.

    Метод может быть назван любым именем.

  2. Используйте ключевое слово Handles, указав элемент управления и событие, к которому должен быть привязан метод.

    В следующем примере кода демонстрируется обработчик событий для события кнопки Click с именем SampleButton. Метод в примере носит имя Clicked.

    Protected Sub SampleButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles SampleButton.Click
        ' Code goes here.
    End Sub
    
    6w2tb12s.alert_note(ru-ru,VS.90).gifПримечание.

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

  3. Если метод обрабатывает несколько событий, добавьте имена дополнительных событий в предложение Handles, отделив запятыми.

    В следующем примере кода демонстрируется метод обработки события Click для некоторых кнопок. В обработчике аргумент отправителя тестируется кодом, чтобы определить, какая кнопка была нажата.

    Protected Sub AnyClicked(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click, Button3.Click
        Dim b As Button = CType(sender, Button)
        Response.Write("You clicked the button labeled " & b.ID)
    End Sub
    

См. также

Задачи

Практическое руководство. Динамическая привязка обработчиков событий на веб-узлах ASP.NET во время работы

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

Общие сведения о серверных веб-элементах управления ASP.NET

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

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

Обработка событий сервера на страницах ASP.NET