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

webcontrol y eventos [URG]

Estas en el tema de webcontrol y eventos [URG] en el foro de .NET en Foros del Web. Buenas gente! estoy teniendo un problema con los eventos de un control que hice. Programe un webcontrol que es un boton, el tema anda barbaro ...
  #1 (permalink)  
Antiguo 29/05/2005, 15:31
 
Fecha de Ingreso: mayo-2005
Mensajes: 1
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación webcontrol y eventos [URG]

Buenas gente!
estoy teniendo un problema con los eventos de un control que hice.
Programe un webcontrol que es un boton, el tema anda barbaro hasta que le agrego los eventos. En el metodo render le agrego esta linea:
html.WriteAttribute("onclick",Page.GetPostBackEven tReference(this));
O sea que cuadno lo renderea en el html me queda asi:
onclick="__doPostBack('btn1','')"
O sea que cuando haga click, realiza el postback y ejecuta el evento asociado al boton en el server.
El probelma surge cuando tengo mas de 1 boton de estos mismos. Cuando hago click en cualquiera de ellos, siempre ejecuta un evento, de los que tiene asosicados cualquiera de ellos, por ejemplo tengo btn1, btn2, btn3 de los cuales tengo asociados a los eventos click de cada uno los metodos btn1_Click, btn2_Click y btn3_Click respectivamente. Si hago click en cualquiera de ellos, simempre se ejecuta el metodo btn3_Click, como si se hiciera click siempre en el mismo boton .
Para ver que la funcion __doPostBack este mandando bien, me pare en el Page_Load y verifique Page.Request.Form["__EVENTTARGET"] y efectivamente esta mandando bien el boton al cual se le hizo click .

Alguien programo un webcontrol con eventos?? una ayuda por favoooooor

Gracias y saludos!!

PD: Felicitaciones por la web, muy buena!!
  #2 (permalink)  
Antiguo 01/06/2005, 12:12
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 20 años, 5 meses
Puntos: 2
Hola, no sé si aún te sirva, pero aqui te dejo un ejemplo de algo que hice algún tiempo. Es un control compuesto por dos controles ImageButton.
Fíjate en la parte que se crea los eventos para cada uno. Si no te sirva a ti, pues lo dejo por si le sirve a alguien más. Saludos...

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

Public Class Botones
Inherits WebControl
Implements INamingContainer

Protected WithEvents cmdAceptar As New ImageButton
Protected WithEvents cmdCancelar As New ImageButton

Dim _ImageOverAceptar As String = "Images/Aceptar_Over.gif"
Dim _ImageOutAceptar As String = "Images/Aceptar.gif"
Dim _ImageOverCancelar As String = "Images/Cancelar_Over.gif"
Dim _ImageOutCancelar As String = "Images/Cancelar.gif"

Dim _ImageUrlAceptar As String = "Images/Aceptar_Inact.gif"
Dim _ImageUrlCancelar As String = "Images/Cancelar_Inact.gif"

Dim _TabIndexAceptar As Short
Dim _TabIndexCancelar As Short

Protected Overrides Sub CreateChildControls()
'Aceptar
cmdAceptar.ID = "Aceptar"
'cmdAceptar.Enabled = Habilitado
cmdAceptar.Enabled = False
cmdAceptar.ImageUrl = "Images/Aceptar_Inact.gif"
cmdAceptar.ToolTip = "Aceptar"
'cmdAceptar.TabIndex = 0
'cmdAceptar.Attributes.Add("onMouseOver", "src='Images/Aceptar_Over.gif'")
'cmdAceptar.Attributes.Add("onMouseOut", "src='Images/Aceptar.gif'")
cmdAceptar.Attributes.Add("onMouseOver", "src='" & ImageOverAceptar & "'")
cmdAceptar.Attributes.Add("onMouseOut", "src='" & ImageOutAceptar & "'")
Me.Controls.Add(cmdAceptar)

'Cancelar
cmdCancelar.ID = "Cancelar"
'cmdCancelar.Enabled = Habilitado
cmdCancelar.Enabled = False
cmdCancelar.ImageUrl = "Images/Cancelar_Inact.gif"
cmdCancelar.ToolTip = "Cancelar"
'cmdCancelar.TabIndex = 0
'cmdCancelar.Attributes.Add("onMouseOver", "src='Images/Cancelar_Over.gif'")
'cmdCancelar.Attributes.Add("onMouseOut", "src='Images/Cancelar.gif'")
cmdCancelar.Attributes.Add("onMouseOver", "src='" & ImageOverCancelar & "'")
cmdCancelar.Attributes.Add("onMouseOut", "src='" & ImageOutCancelar & "'")
Me.Controls.Add(cmdCancelar)

End Sub

' Declaramos los eventos
Public Event AceptarClick As EventHandler
Public Event CancelarClick As EventHandler

' Creamos los manejadores de eventos
Protected Sub Aceptar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cmdAceptar.Click
RaiseEvent AceptarClick(sender, e)
End Sub

Protected Sub Cancelar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cmdCancelar.Click
RaiseEvent CancelarClick(sender, e)
End Sub

'************************************************* ****
'Propiedades para mostrar las imagenes de los botones
'Aceptar y Cancelar
'************************************************* ****
' <Category("Behavior"), _
' Description("Imagen mostrada para el botón Aceptar")> _
Public Property ImageUrlAceptar() As String
Get
EnsureChildControls()
Return cmdAceptar.ImageUrl
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdAceptar.ImageUrl = Value
End Set
End Property

<Category("Behavior"), _
Description("Imagen mostrada para el botón Cancelar")> _
Public Property ImageUrlCancelar() As String
Get
EnsureChildControls()
Return cmdCancelar.ImageUrl
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdCancelar.ImageUrl = Value
End Set
End Property

'*************************************
'Propiedades para habilitar los botones
'Aceptar y Cancelar
'*************************************
<Category("Behavior"), _
Description("Permite habilitar o deshabilitar el botón Aceptar")> _
Public Property AceptarEnabled() As Boolean
Get
EnsureChildControls()
Return cmdAceptar.Enabled
End Get
Set(ByVal Value As Boolean)
EnsureChildControls()
cmdAceptar.Enabled = Value
If Value = True Then
cmdAceptar.ImageUrl = "Images/Aceptar.gif"
Else
cmdAceptar.ImageUrl = "Images/Aceptar_Inact.gif"
End If
End Set
End Property

<Category("Behavior"), _
Description("Permite habilitar o deshabilitar el botón Cancelar")> _
Public Property CancelarEnabled() As Boolean
Get
EnsureChildControls()
Return cmdCancelar.Enabled
End Get
Set(ByVal Value As Boolean)
EnsureChildControls()
cmdCancelar.Enabled = Value
If Value = True Then
cmdCancelar.ImageUrl = "Images/Cancelar.gif"
Else
cmdCancelar.ImageUrl = "Images/Cancelar_Inact.gif"
End If
End Set
End Property

'********************************************
'Propiedades para establecer el orden
'de tabulación de cada botón
'********************************************
<Category("Behavior"), DefaultValue(0), _
Description("Orden de tabulación del botón Aceptar")> _
Public Property TabIndexAceptar() As Short
Get
EnsureChildControls()
Return cmdAceptar.TabIndex
End Get
Set(ByVal Value As Short)
EnsureChildControls()
cmdAceptar.TabIndex = Value
End Set
End Property

<Category("Behavior"), DefaultValue(0), _
Description("Orden de tabulación del botón Cancelar")> _
Public Property TabIndexCancelar() As Short
Get
EnsureChildControls()
Return cmdCancelar.TabIndex
End Get
Set(ByVal Value As Short)
EnsureChildControls()
cmdCancelar.TabIndex = Value
End Set
End Property


'************************************************* *
'Propiedades para mostrar las imagenes en los
'eventos OnMouseOver y OnMouseOut de los botones
'Aceptar y Cancelar
'************************************************* *
<Category("Behavior"), _
Description("Imagen mostrada en el evento OnMouseOver de Aceptar")> _
Public Property ImageOverAceptar() As String
Get
Return _ImageOverAceptar
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdAceptar.Attributes.Add("onMouseOver", "src='" & Value & "'")
End Set
End Property

<Category("Behavior"), _
Description("Imagen mostrada en el evento OnMouseOut de Aceptar")> _
Public Property ImageOutAceptar() As String
Get
Return _ImageOutAceptar
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdAceptar.Attributes.Add("onMouseOut", "src='" & Value & "'")
End Set
End Property

<Category("Behavior"), _
Description("Imagen mostrada en el evento OnMouseOver de Cancelar")> _
Public Property ImageOverCancelar() As String
Get
Return _ImageOverCancelar
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdCancelar.Attributes.Add("onMouseOver", "src='" & Value & "'")
End Set
End Property

<Category("Behavior"), _
Description("Imagen mostrada en el evento OnMouseOut de Cancelar")> _
Public Property ImageOutCancelar() As String
Get
Return _ImageOutCancelar
End Get
Set(ByVal Value As String)
EnsureChildControls()
cmdCancelar.Attributes.Add("onMouseOut", "src='" & Value & "'")
End Set
End Property

'Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
' CreateChildControls()
' MyBase.Render(writer)
'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 12:38.