Foros del Web » Programación para mayores de 30 ;) » .NET »

Evento Click en Control Compuesto:

Estas en el tema de Evento Click en Control Compuesto: en el foro de .NET en Foros del Web. Hola, alguien sabe como crear un evento click para un control compuesto? yo lo he hecho creando un control de dos botones de comando y ...
  #1 (permalink)  
Antiguo 21/12/2004, 06:55
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 7 meses
Puntos: 2
Evento Click en Control Compuesto:

Hola, alguien sabe como crear un evento click para un control compuesto?
yo lo he hecho creando un control de dos botones de comando y un evento click
para el control pero no me funcona porque el evento click se ejecuta dos veces.
Este es el código:

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Drawing

Public Class Botones
Inherits WebControl
Implements IPostBackEventHandler

Dim Boton1 As New Button
Dim Boton2 As New Button

'creo los controles
Protected Overrides Sub CreateChildControls()

''''''''''''''''''''''''''''''''''''''''''''''
'de esta forma obtengo el Id del botón en el
'que se hizo click.
''''''''''''''''''''''''''''''''''''''''''''''
Boton1.Id = "Boton1"
Boton1.Attributes("OnClick") = _
Page.GetPostBackEventReference(Me, Boton1.ID)
me.Controls.Add(Boton1)

Boton2.Id = "Boton1"
Boton2.Attributes("OnClick") = _
Page.GetPostBackEventReference(Me, Boton1.ID)
me.Controls.Add(Boton2)

End Sub

'Este método se ejecuta cuando el usuario hace click en alguno de los botones
Public Overridable Overloads Sub RaisePostBackEvent(ByVal eventArgument As String) Implements System.Web.UI.IPostBackEventHandler.RaisePostBackE vent
RaiseEvent Click(eventArgument)
End Sub

Event Click(ByVal ButtonName As String)

End Class

Entonces en el Web Form cuando agrego el control esto es lo que hago en el evento click:

Private Sub Botones1_Click(ByVal ButtonName As String) Handles Botones1.Click
If ButtonName = "Boton2" then
''''codigo
ElseIf ButtonName = "Boton2" Then
''''codigo
End If
End Sub

El grandioso problema es que este evento se ejecuta dos veces, entonces al momento de insertar
un registro en la base de datos siempre me dice que el registro ya existe. De que otra forma puedo crear
un evento click para un control compuesto?.
  #2 (permalink)  
Antiguo 22/12/2004, 14:58
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 7 meses
Puntos: 2
Aqui les dejo la solución.

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Drawing

Public Class Buttons
Inherits WebControl
Implements INamingContainer

Public WithEvents Accept As New Button
Public WithEvents Cancel As New Button

Protected Overrides Sub CreateChildControls()
Accept.ID = "Accept"
Accept.Text = "Accept"
Me.Controls.Add(Accept)

Cancel.ID = "Cancel"
Cancel.Text = "Cancel"
Me.Controls.Add(Cancel)
End Sub

' Declare an Event
Public Event AceptarClick As EventHandler

' Event handler for button click
Protected Sub Accept_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Accept.Click
RaiseEvent AceptarClick(sender, e)
End Sub

' Declare an Event
Public Event CancelarClick As EventHandler

' Event handler for button click
Public Sub Cancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cancel.Click
RaiseEvent CancelarClick(sender, e)
End Sub

End Class
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.