Evaluar y enviar comentarios

  Encender vista de ancho de banda bajo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
ASP.NET
Cómo: Conectar varios eventos con un único controlador de eventos en páginas Web ASP.NET

Si ya dispone de un controlador de eventos, puede enlazarle varios eventos de control. Estos eventos múltiples pueden ser del mismo control, o un evento puede ser de varios controles distintos, siempre y cuando todos los eventos tengan la misma firma de método. Por ejemplo, quizás desee enlazar los eventos Click de varios controles de servidor Button de una página ASP.NET a un único controlador de eventos. Cuando se llama al controlador, se puede determinar el control que causó el evento.

Para conectar varios eventos a un único controlador de eventos

  • En el marcado de página, agregue el mismo nombre de evento y el mismo nombre de método a cada control, como en el ejemplo de código siguiente.

    <asp:Button ID="Button1" onclick="Button_Click" runat="server" 
      Text="Button1" /> 
    <br />
    <asp:Button ID="Button2" onclick="Button_Click" runat="server"
      Text="Button2" />
    NoteNota

    Debe asegurarse de que el método tiene la firma correcta para el evento que está controlando.

Para conectar varios eventos a un único controlador de eventos en Visual Basic

  • Modifique la cláusula Handles de un método agregando los nombres de los eventos que el método debe controlar. Separe los nombres de los eventos mediante comas.

    En el ejemplo de código siguiente se muestra cómo puede enlazar el método Button_Click a eventos provocados por tres controles Button.

    Visual Basic
    Sub Button_Click (ByVal sender as System.Object, _
        ByVal e as System.EventArgs) _
        Handles Button1.Click, Button2.Click, Button3.Click
    NoteNota

    Si utiliza una cláusula Handles para enlazar un evento y un método, no incluya también el atributo de evento en el marcado. Por ejemplo, no incluya un atributo onClick en el marcado para un control Button. Si lo hace, se llamará dos veces al método.

Para determinar el control que provocó el evento

  1. En el controlador de eventos, declare una variable cuyo tipo coincida con los controles que dieron lugar al evento.

  2. Asigne el primer argumento del controlador de eventos a la variable, convirtiéndolo al tipo correspondiente.

    En el siguiente ejemplo de código se muestra el controlador del evento Click de un control Button al que llaman varios botones diferentes. El controlador muestra la propiedad ID del botón que provocó el evento.

    Visual Basic
    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
    

    C#
    private void Button_Click(object sender, System.EventArgs e)
        {
            Button b = (Button) sender;
            Label1.Text = b.ID;
        }
    

Vea también

Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso  |  Marcas Registradas  |  Privacidad
Page view tracker