Carro de compras implementado con arrayList
Publicado por danielGT (11 intervenciones) el 01/10/2004 06:52:47
Hola chicos.
Otra vez yo por aqui molestando.
Necesito que alguien me ayude con esto. Estoy implementando un carro de compras usando un arrayList, ya que no quiero hacerlo usando la base de datos. El problema que tengo es que mi carro de compras (o sea, el arrayList) se destruye despues que le agrego un producto.
Tengo el siguiente codigo
Public Class WebForm2
Inherits System.Web.UI.Page
Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
Protected WithEvents lstProductos3 As System.Web.UI.WebControls.DataGrid
Public carrito As SisControl.CarroCompras
Private arrProductos As System.Collections.ArrayList
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objProducto As New SisControl.Producto()
carrito = Session("carrito")
Try
arrProductos = objProducto.Listado(-1, -1, -1, 127, "")
lstProductos3.DataSource = arrProductos
Page.DataBind()
Catch excepcion As System.Exception
Response.Write(excepcion.Message)
End Try
Session("carrito") = carrito
End Sub
Private Sub lstProductos3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstProductos3.SelectedIndexChanged
Dim idx As Integer
Dim usrProducto As New SisControl.Producto(True)
Dim itemListado As SisControl.ListadoProductos
carrito = Session("carrito")
idx = lstProductos3.SelectedIndex
itemListado = arrProductos.Item(idx)
usrProducto.Producto_id = itemListado.Producto_id
usrProducto.Descripcion = itemListado.Descripcion
usrProducto.Precio = itemListado.Precio
usrProducto.Cantidad = itemListado.Cantidad
usrProducto.Disponibilidad = itemListado.Disponibilidad
usrProducto.Llevar(carrito)
usrProducto = Nothing
Session("carrito") = carrito
End Sub
End Class
CarroCompras es una clase, que no es otra cosa sino un objeto con una unica propiedad y que en realidad no es otra cosa sino un arrayList, que pretendo usar para ir guardando los productos. En el evento SelectedIndexChanged es donde agrego un producto al carro, y lo hace perfectamente (lstProductos3 es un dataGrid, que esta vinculado a los productos que obtengo de la base de datos). El problema es que una vez que el evento termina, despues cuando inserto otro, el carro esta vacio, desde cero nuevamente. Pense que usando Sessions se resolveria mi problema, pero no resulto como yo esperaba. En el global.asax , creo una session donde creo el carro, y despues recupero la session en el codigo que les mostre. El carro se recupera bien, pero vacio (bueno, la primera vez, esta bien que este vacio, pero las veces siguientes no).
Alguien me podria sugerir algo? necesito ayuda por favor.
Un saludo y gracias de antemano.
Otra vez yo por aqui molestando.
Necesito que alguien me ayude con esto. Estoy implementando un carro de compras usando un arrayList, ya que no quiero hacerlo usando la base de datos. El problema que tengo es que mi carro de compras (o sea, el arrayList) se destruye despues que le agrego un producto.
Tengo el siguiente codigo
Public Class WebForm2
Inherits System.Web.UI.Page
Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
Protected WithEvents lstProductos3 As System.Web.UI.WebControls.DataGrid
Public carrito As SisControl.CarroCompras
Private arrProductos As System.Collections.ArrayList
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim objProducto As New SisControl.Producto()
carrito = Session("carrito")
Try
arrProductos = objProducto.Listado(-1, -1, -1, 127, "")
lstProductos3.DataSource = arrProductos
Page.DataBind()
Catch excepcion As System.Exception
Response.Write(excepcion.Message)
End Try
Session("carrito") = carrito
End Sub
Private Sub lstProductos3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstProductos3.SelectedIndexChanged
Dim idx As Integer
Dim usrProducto As New SisControl.Producto(True)
Dim itemListado As SisControl.ListadoProductos
carrito = Session("carrito")
idx = lstProductos3.SelectedIndex
itemListado = arrProductos.Item(idx)
usrProducto.Producto_id = itemListado.Producto_id
usrProducto.Descripcion = itemListado.Descripcion
usrProducto.Precio = itemListado.Precio
usrProducto.Cantidad = itemListado.Cantidad
usrProducto.Disponibilidad = itemListado.Disponibilidad
usrProducto.Llevar(carrito)
usrProducto = Nothing
Session("carrito") = carrito
End Sub
End Class
CarroCompras es una clase, que no es otra cosa sino un objeto con una unica propiedad y que en realidad no es otra cosa sino un arrayList, que pretendo usar para ir guardando los productos. En el evento SelectedIndexChanged es donde agrego un producto al carro, y lo hace perfectamente (lstProductos3 es un dataGrid, que esta vinculado a los productos que obtengo de la base de datos). El problema es que una vez que el evento termina, despues cuando inserto otro, el carro esta vacio, desde cero nuevamente. Pense que usando Sessions se resolveria mi problema, pero no resulto como yo esperaba. En el global.asax , creo una session donde creo el carro, y despues recupero la session en el codigo que les mostre. El carro se recupera bien, pero vacio (bueno, la primera vez, esta bien que este vacio, pero las veces siguientes no).
Alguien me podria sugerir algo? necesito ayuda por favor.
Un saludo y gracias de antemano.
Valora esta pregunta
0