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

No se produce el evento

Estas en el tema de No se produce el evento en el foro de .NET en Foros del Web. Hola chic@s, ¿Cómo consigo lanzar un evento de un control de usuario incrustado en un webform? He probado varias cosas pero no me hace nada. ...
  #1 (permalink)  
Antiguo 15/06/2004, 03:33
 
Fecha de Ingreso: agosto-2002
Mensajes: 29
Antigüedad: 21 años, 8 meses
Puntos: 0
No se produce el evento

Hola chic@s,

¿Cómo consigo lanzar un evento de un control de usuario incrustado en un webform?
He probado varias cosas pero no me hace nada.

Un saludo.
  #2 (permalink)  
Antiguo 15/06/2004, 03:39
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Has probado con Raise NombreEvento?
Un saludo
  #3 (permalink)  
Antiguo 15/06/2004, 03:42
 
Fecha de Ingreso: agosto-2002
Mensajes: 29
Antigüedad: 21 años, 8 meses
Puntos: 0
Si, y nada.
  #4 (permalink)  
Antiguo 15/06/2004, 03:43
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola!
Puedes ser un poco más explícito.... lanzar qué evento?? cuando?? y en que control??
^_^
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #5 (permalink)  
Antiguo 15/06/2004, 03:51
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Información

El emisor de eventos

Un emisor de eventos, también denominado origen de eventos (event source o event sender), es un
objeto capacitado para generar y lanzar eventos al sistema, que puedan ser recuperados por otros
objetos preparados para realizar su tratamiento.
Para que un objeto pueda desencadenar eventos, en su clase debemos realizar dos tareas:
• Declarar el propio evento usando la palabra clave Event, especificando si es necesario una
lista de parámetros que acompañan al evento.
• Lanzar el evento mediante la palabra clave RaiseEvent, seguida del nombre del evento a
disparar. Si hemos declarado el evento con parámetros, deberemos añadir los valores para
cada uno de los parámetros en el mismo orden en el que los hemos declarado.
Situándonos pues ante el problema planteado por la clase Empleado en un apartado anterior, la
solución que proponemos consistirá en generar desde la clase Empleado un evento cuando se produzca
un fallo en la validación del sueldo. De esta manera, el código cliente que lo necesite, responderá al
evento; y el que no lo precise, hará caso omiso del evento lanzado.
En primer lugar, declaramos en la zona de declaraciones de la clase el evento LimiteSueldo, que irá
acompañado de un parámetro que nos informará del importe erróneo que se intentaba asignar a la
propiedad.
A continuación, en la propiedad Sueldo, cuando detectemos que el sueldo sobrepasa el valor
permitido, en lugar de lanzar allí el mensaje a la consola, generaremos el evento LimiteSueldo, que
podrá ser recuperado por el código cliente que haga uso de la clase, actuando como necesite en cada
ocasión. Observe el lector, que al mismo tiempo que lanzamos el evento, le pasamos el importe del
sueldo que se intentaba asignar. Veamos el Código fuente 335.
Cita:
Public Class Empleado
' declaramos el evento
Public Event LimiteSueldo(ByVal ldbImporte As Double)
Private msNombre As String
Private mdbSueldo As Double
Public Property Nombre() As String
Get
Return msNombre
End Get
Set(ByVal Value As String)
msNombre = Value
End Set
End Property
Public Property Sueldo() As Double
Get
Return mdbSueldo
End Get
Set(ByVal Value As Double)
' si el valor que intentamos asignar
' al sueldo supera el permitido...
If Value > 1000 Then
' ...lanzamos el evento, y le pasamos
' como parámetro informativo el valor
' incorrecto que intentábamos asignar
RaiseEvent LimiteSueldo(Value)
Else
mdbSueldo = Value
End If
End Set
End Property
End Class
Código fuente 335
Con estas modificaciones sobre la clase Empleado, ya tenemos listo nuestro emisor de eventos. Queda
ahora por completar la parte que captura los eventos lanzados por el emisor.
El receptor de eventos
Un receptor de eventos, también denominado manipulador de eventos (event receiver o event
handler), es aquella parte del código cliente, que configuramos para que sea capaz de recibir los
eventos generados por un objeto emisor. Para que ambos elementos, en este canal de comunicación
que es la transmisión de eventos puedan operar, es necesario conectarlos.
Conexión de un emisor de eventos con un manipulador de
eventos
Existen dos medios para comunicar un evento con un manipulador de eventos:
• En tiempo de compilación, realizando un enlace estático entre la clase y el manipulador
mediante las palabras clave WithEvents y Handles. Esta técnica tiene la ventaja de que
permite escribir un código mucho más legible, en cuanto a la manipulación de eventos se
refiere.
• En tiempo de ejecución, realizando un enlace dinámico entre la clase y el manipulador
mediante la palabra clave AddHandler. La ventaja en este caso, es que podemos asociar
procedimientos manipuladores de evento dinámicamente durante el transcurso de la ejecución
del programa.
  #6 (permalink)  
Antiguo 15/06/2004, 10:14
 
Fecha de Ingreso: agosto-2002
Mensajes: 29
Antigüedad: 21 años, 8 meses
Puntos: 0
Perdón, Sigue sin funcionarme...

A ver....

Tengo un control web de usuario y en él he definido un DropDownList.

Este control web de usuario lo meto en un WebForm y deseo que cuando cambie el elemento seleccionado me salte el evento.

El código es el siguiente..........................

WebControlUsuario:
......
Public Delegate Sub MyItemSelected(ByVal sender As Object, ByVal e As EventArgs)
Public Event OnSelectedIndexChanged As MyItemSelected
......
Public Property ElementSelected() As String
Get
Return m_strElemento
End Get
Set(ByVal Value As String)
m_strElemento = Value
End Set
End Property
.......
Private Sub SelectItem(ByVal Sender As Object, ByVal e As EventArgs) Handles m_ddlControlExpedientes.SelectedIndexChanged
m_strElemento = m_ddlControlExpedientes.SelectedValue
RaiseEvent OnSelectedIndexChanged(Sender, e)
End Sub
......




WebForm:
......
Protected WithEvents MainMenu1 As MainMenu
......
Protected Sub Desplegable(ByVal sender As Object, ByVal e As EventArgs) Handles MainMenu1.OnSelectedIndexChanged
Me.TextBox1.Text = MainMenu1.ElementSelected
End Sub
......


¿Qué estoy haciendo mal?
  #7 (permalink)  
Antiguo 15/06/2004, 10:40
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Checa éste link... igual y te sirve.

http://www.dotnetjunkies.com/Article...3FC68F8F2.dcik

P.D Está en c# pero si tienes dudas para pasarlo a vb.net en las faq´s incluí una page que convierte de c# a vb.net y viceversa.

Espero te sirva..

Salu2 y suerte. . .
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
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 01:30.