Hola de nuevo,
A continuación te muestro el código que tengo en el Page_Load del formulario que me está dando problemas
Código:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
cargarDatosProyecto()
End If
End Sub
Private Sub cargarDatosProyecto()
Dim codProy As String = ""
Dim coger_MC_Proyecto As HttpCookie = Request.Cookies.Get("GestProy_Proyecto")
' Leer valores de una Cookie múltiple
If Session("crearProyecto") = False Then
' Si existe el nombre ya estaba creado
Me.txtNombre.Text = coger_MC_Proyecto.Values.Get(1)
Me.txtDescripcion.Text = coger_MC_Proyecto.Values.Get(2)
Me.txtPlanInicial.Text = coger_MC_Proyecto.Values.Get(3)
Me.txtPlanActualizada.Text = coger_MC_Proyecto.Values.Get(4)
Me.txtFecha_inicio.Text = coger_MC_Proyecto.Values.Get(5)
Me.txtFecha_final.Text = coger_MC_Proyecto.Values.Get(6)
Me.txtResponsable.Text = coger_MC_Proyecto.Values.Get(8)
Me.txtCoordinador.Text = coger_MC_Proyecto.Values.Get(10)
Me.txtCliente.Text = coger_MC_Proyecto.Values.Get(12)
Else
' Si no está el nombre definido es que se está creando el proyecto
'Crear código para el proyecto
codProy = Consultas_PorCodigo.crearCodProyecto(Session("tipo_proyecto"), Session("año"))
Session("crearProyecto") = False
If Not codProy.Equals("") Then
Consultas_PorCodigo.meterProyEnCookie(codProy)
End If
' Redirigimos a esta misma página para que entre cargando el proyectio
Response.Redirect("DetallesProyecto.aspx")
End If
End Sub
La primera vez que cargo la página entra por el ELSE para crear un nuevo proyecto y lo guarda en la Cookie. Despues redirijo la misma página. Ahora entra por el IF y lee correctamente de la cookie los valores que habia inicializado la primera vez y los muestra en el formulario.
Una vez mostrados los valores, el usuario puede cambiar algunas cosas y pulsar el botón guardar, que tiene el siguiente código (hasta aquí todo habia ido correctamente)
Código:
Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
Dim coger_MC_Proyecto As HttpCookie = Request.Cookies.Get("GestProy_Proyecto")
Dim proyecto As New Proyecto()
proyecto.codigo = coger_MC_Proyecto.Values.Get(0)
proyecto.nombre = Me.txtNombre.Text
proyecto.descripcion = Me.txtDescripcion.Text
proyecto.plan_inicial = Me.txtPlanInicial.Text
proyecto.plan_actual = Me.txtPlanActualizada.Text
proyecto.fecha_inicio = Me.txtFecha_inicio.Text
proyecto.fecha_final = Me.txtFecha_final.Text
proyecto.responsable = coger_MC_Proyecto.Values.Get(7)
proyecto.coordinador = coger_MC_Proyecto.Values.Get(9)
proyecto.cliente = coger_MC_Proyecto.Values.Get(11)
' Cambio en la BD
Control_Detalles.guardarCambiosDetProy(proyecto)
End Sub
Tras ejecutar debugueando: Dim coger_MC_Proyecto As HttpCookie = Request.Cookies.Get("GestProy_Proyecto") compruebo el valor de la cookie y está vaciía, por lo que el objeto "proyecto" se me inicializa incorrectamente.
Desde el principio traté de reducir un poco los post para hacerlo más legible. Esto es todo el código.
Muchas gracias por tu tiempo.