Практическое руководство. Подключение несколько событий к одному обработчику событий на веб-страницах ASP.NET
Обновлен: Ноябрь 2007
Если обработчик событий уже существует, с ним можно связать несколько событий элемента управления. Эти события могут быть разными событиями из одного элемента управления или одним событием из нескольких разных элементов управления при условии, что все события имеют одинаковую сигнатуру. Например, может потребоваться привязать события Click нескольких серверных элементов управления Button на странице ASP.NET к одному обработчику событий. При вызове обработчика можно определить, какой элемент управления был источником события.
Подключение нескольких событий к одному обработчику
В разметке страницы добавьте одинаковые имена событий и методов к каждому элементу управления, как в следующем примере кода.
<asp:Button ID="Button1" onclick="Button_Click" runat="server" Text="Button1" /> <br /> <asp:Button ID="Button2" onclick="Button_Click" runat="server" Text="Button2" />
Примечание. Необходимо убедиться, что метод использует правильную сигнатуру для обрабатываемого события.
Чтобы связать несколько событий с одним обработчиком событий в Visual Basic, выполните следующие действия.
Измените предложение Handles метода, добавил имена событий, которые должен обрабатывать метод. Имена события должны разделяться запятыми.
В следующем примере показано, каким образом можно связать события, вызванные тремя элементами управления Button, с методом Button_Click.
Sub Button_Click (ByVal sender as System.Object, _ ByVal e as System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click
Примечание. При использовании предложения Handles для связывания события и метода не следует включать в разметку атрибут события. Например, не включайте атрибут onClick в разметку для элемента управления Button. В противном случае метод будет вызван дважды.
Определение элемента управления, вызвавшего событие
В обработчике событий объявите переменную, тип которой соответствует элементам управления, вызывающим событие.
Присвойте первый аргумент обработчика событий переменной, приведя ее к соответствующему типу.
В следующем примере иллюстрируется обработчик для события Click элемента управления Button, которое вызывается несколькими разными кнопками. Обработчик отображает свойство ID кнопки, которая вызвала событие.
Private Sub Button_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click Dim b As Button = CType(sender, Button) Label1.Text = b.ID End Sub
private void Button_Click(object sender, System.EventArgs e) { Button b = (Button) sender; Label1.Text = b.ID; }