Foros del Web » Programando para Internet » ASPX (.net) »

Clase que genera eventos

Estas en el tema de Clase que genera eventos en el foro de ASPX (.net) en Foros del Web. Hola a todos, les explico mi problema, en la solucion que estoyu construyedo se esta implementando el MVC, especificamente mi problema es que desde la ...
  #1 (permalink)  
Antiguo 22/01/2008, 13:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 4 meses
Puntos: 0
Exclamación Clase que genera eventos

Hola a todos, les explico mi problema, en la solucion que estoyu construyedo se esta implementando el MVC, especificamente mi problema es que desde la pagina que invoco al metodo de la clase que ha de decidir que accion se debe ejecutar se genera un evento en el cual debo desplegar los datos obtenidos, pero cuando la pagina se termina de cargar no exsten datos en los controles, mas claro :

tengo la siguiente clase

Código:
Public Class CtrlManipularDatos
    Implements ICtrlEdicion
....
 'Declaro el Evento que notifica que se ejecuto la accion de busqueda
 Public Event BuscarEjecutado(ByVal elementosEncontrados As Integer) 

' Metodo con el cual se decide que accion se debe ejecutar 
'dependiendo del estado actual de la pantalla que invoca

Public Sub EjecutarAccion() Implements ICtrlEdicion.EjecutarAccion
        Select Case Me.EstadoAgregar.Accion
            Case SeguimientoEntidades.EntListas.Acciones.Consultar
                Buscar()
            Case SeguimientoEntidades.EntListas.Acciones.Eliminar
                Eliminar()
            Case SeguimientoEntidades.EntListas.Acciones.Insertar
                Insertar()
            Case SeguimientoEntidades.EntListas.Acciones.Modificar
                Modificar()
            Case SeguimientoEntidades.EntListas.Acciones.PrepararNuevo
                Me.EstadoAgregar.Accion = SeguimientoEntidades.EntListas.Acciones.PrepararNuevo
        End Select
 End Sub




 Public Sub Buscar() Implements ICtrlEdicion.Buscar
     'Ejecuto Instruccines de busqueda 
     ....
    'lanzo el evento que notifica a la aplicacion 
    'que se ejecuto la instruccion de buscar
    'enviando como argumentos el contador de los elementos encontrados

     RaiseEvent BuscarEjecutado(Me.EstadoAgregar.Elementos.Count)

 End Sub

y en la pagina en cuestion tengo el siguiente codigo
Código:
Partial Class Captura_CapturaDatos
    Inherits System.Web.UI.Page

    Dim NombreSesionControl As String = "capturaincidente"
    Dim EstadoModulo As SeguimientoEntidades.EntListas.Estados
    Dim ctrl As SeguimientoControl.IControl

    Private ReadOnly Property Controlador() As SeguimientoControl.CtrlManipularDatos
        Get
            Return CType(ctrl, SeguimientoControl.CtrlManipularDatos)
        End Get
    End Property

    Private ReadOnly Property Estado() As SeguimientoControl.EstRegistrarIncidente
        Get
            Return CType(ctrl, SeguimientoControl.CtrlManipularDatos).Estado
        End Get
    End Property

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        EstablecerEventosJS()
        CargarControlador()
        If Not Page.IsPostBack Then
            CargaDatos()
        End If        
    End Sub
    Private Sub CargarControlador(Optional ByVal recrear As Boolean = False)
        If Page.Session.Item(NombreSesionControl) Is Nothing Or recrear Then
            
            ctrl = New SeguimientoControl.CtrlManipularDatos
            ctrl.Estado = New SeguimientoControl.EstRegistrar

            'Se agrega el controlador para el evento BuscarEjecutado haciendo 
            'referencia al metodo BuscarEjecutado ubicado en la pagina

            AddHandler Controlador.BuscarEjecutado, AddressOf Me.BuscarEjecutado
           
           ' Establece el controlador en estado de consulta
           
            Controlador.EstadoConsulta()

        Else
            ctrl = CType(Session.Item(NombreSesionControl), SeguimientoControl.IControl)

        End If
        GardarControlador()
    End Sub

'Metodo que captura el evento BuscarEjecutado de la clase CtrlManipularDatos
Private Sub BuscarEjecutado(ByVal elementosencontrados As Integer)
        If elementosencontrados > 0 Then
            ObtieneDatos()
        Else
            LimpiarDatos()
            Me.txtDescripcion.Text = "No encontrado"
        End If
    End Sub

'Metodo en el cual desplegamos en la pagina los datos obtenidos
Private Sub ObtieneDatos() 
        txtObservaciones.Text = Me.Estado.Incidente.Observaciones
        ddlInstalacion.SelectedValue = Me.Estado.Incidente.IdInstalacion
        ddlLugares.SelectedValue = Me.Estado.Incidente.IdLugar
        Me.txtFechaEvento.Text = Me.Estado.Incidente.FechaIncidente
        Me.txtFechaIniRestP.Text = Me.Estado.Incidente.FechaInicioRestP
        Me.txtFechaIniRestR.Text = Me.Estado.Incidente.FechaInicioRestR
        Me.txtFechaRepP.Text = Me.Estado.Incidente.FechaReparacionP
        Me.txtFechaRepR.Text = Me.Estado.Incidente.FechaReparacionR
        Me.txtFechaTermTrabP.Text = Me.Estado.Incidente.FechaTerminoTrabP
        Me.txtFechaTermTrabR.Text = Me.Estado.Incidente.FechaTerminoTrabR
        Me.txtHora.Text = Me.Estado.Incidente.Hora
     
    End Sub

y por ultimo tengo elsiguiente codigo con el cual es invocado el metodo Ejecutar accion

Código:
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnBuscar.Click
        'EditaDatos(True)

        EstadoBotones(SeguimientoEntidades.EntListas.Estados.Consulta)
        

        Controlador.EstadoConsulta()

        EstableceParametrosBusqueda()

        'Se invoca al metodo que ejecuta la búsqueda
        Ejecutar()


        
    End Sub

    Private Sub Ejecutar()
        ObtieneEstado()
        
        'Se ejecuta la accion y en respuesta se lanza un evento
        Controlador.EjecutarAccion()
        	      
        GardarControlador()
        
        EditaDatos(False)
    End Sub

En otras palabras la secuencia es la siguiente

se instacia la clase CtrlManipularDatos en la variable ctrl la cual es accesada mediante la propiedad Controlador de la pagina, se agrega el controlador al evento BuscarEjecutado

Cuando ocurre un click en el boton buscar se establece el modo del controlador en modo de consulta y se ejecuta el metodo Ejecutar en el cual se ejecuta el metodo Controlador.EjecutarAccion que para para este caso es consultar

Al ejecutarse EjecutarAccion de la clase CtrlManipularDatos se decide que se ejecute el metodo de buscar de la clase, dentro de la cual despues de ejecutar las acciones correspondientes se lanza el evento BuscarEjecutado
el cual es capturado por el metodo BuscarEjecutado de la pagina que invoco almetodo de la clase, dentro del cual si los elementos encontrados fueron mayor a 0 se se pintan los datos encontrados dentro de los controles correspondientes de la pagina o en su defecto si no se encontraron datos que despleiqgue yuna leyenda dentro de uno de esos controles.. UFFF (me canse jeje), es ahi que aunque se hayan encontrado datos y todo se haya ejecutado correctamente, cuando se despliega la pagina no hay ningun dato en los controles

despues de tanto rollo espero haberme explicado y que alguien me pueda ayudar

cual quier idea o comentario sera agradecido y

gracias por el tiempo que se tomen en leer mi problema
  #2 (permalink)  
Antiguo 22/01/2008, 14:15
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Clase que genera eventos

si no me equivoco tu principal problema es q no estas conservando el ViewState de tu control customatizado, lo q te recomeindo es conservar el estado para cada uno de los campos para no perder tus datos entre llamadas al servidor.

Busca ViewState in Custom Web Controls

saludos
peterpay
  #3 (permalink)  
Antiguo 22/01/2008, 15:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 69
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Clase que genera eventos

mm aver no se si entendi bien, pero el tipo de proyecto en el cual esta creada la clase CtrlManipularDatos no del tipo Custom Web Controls

De hecho es una biblioteca de clases el hecho que por ahi se implente una interfaz llamada IControl es solo el nombre no es tal cual un control; yo solo nombre a esa interfaz IControl porque es una interfaz para controlar el comportamiento de la clase no es propiamente un Custom Web Controls a menos de que no te este entendiendo bien agradeceria me expliques un poquito mas

agradezco tu tiempo
__________________
__________________________________________
alguien pregunto un día:
Disculpe Sr. , ¿Que es La luz?
"La Luz :pensando: ... es la sombra de Dios"

Albert Einstein
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 08:43.