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