Ver Mensaje Individual
  #10 (permalink)  
Antiguo 22/12/2009, 04:22
Eloytxo
 
Fecha de Ingreso: noviembre-2009
Mensajes: 44
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: insertar en gridview y guardar

Hola, yo ando metido en una aplicación de carrito, y uso más o menos lo mismo para crear el gridview. Para insertar los articulos en el carro utilizo un GridView con una columna de tipo image button, que me agrega los artículos. Tengo dos problemas:

1 - Cuando clicko el botón para agregar un artículo, éste se me agrega dos veces al GV. He leido que es problema del src de la imagen botón, pero no encuentro más que una src, y apunta correctamente a la imagen... mi código:

Código vb:
Ver original
  1. Código .aspx
  2.  
  3. <asp:GridView ID="GVBebidas" runat="server" AllowPaging="True" AllowSorting="True"
  4.                                   BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px"
  5.                                   CellPadding="4" DataSourceID="BebidasBD" AutoGenerateColumns="False" PageSize="5">
  6.                                   <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
  7.                                   <Columns>
  8.                                       <asp:ImageField DataImageUrlField="RutaImagen" DataImageUrlFormatString="~/Images/Catalogo/thumbnail/{0}" HeaderText="Imagen">
  9.                                           <ItemStyle Height="100px" Width="100px" />
  10.                                       </asp:ImageField>
  11.                                       <asp:BoundField DataField="Nombre" HeaderText="Nombre" SortExpression="Nombre" />
  12.                                       <asp:BoundField DataField="Descripcion" HeaderText="Descripcion" SortExpression="Descripcion" />
  13.                                       <asp:BoundField DataField="Precio" HeaderText="Precio" SortExpression="Precio" />
  14.                                       <asp:BoundField DataField="RutaImagen" HeaderText="RutaImagen" SortExpression="RutaImagen"
  15.                                           Visible="False" />
  16.                                       <asp:ButtonField ButtonType="Image" CommandName="Añadir" ImageUrl="images/CarroRojo.jpg"
  17.                                           Text="Añadir" />
  18.                                   </Columns>
  19.                                   <RowStyle BackColor="Silver" ForeColor="#330099" />
  20.                                   <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
  21.                                   <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
  22.                                   <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
  23.                                   <AlternatingRowStyle BackColor="Gainsboro" />
  24.                               </asp:GridView>
  25.  
  26. Código del .vb
  27.  
  28.     '    Sub Añadir_Articulo(ByVal s As Object, ByVal e As EventArgs)
  29.    Sub Añadir_Articulo()
  30.         If Session("Carrito") Is Nothing Then
  31.             CrearCarro()
  32.         End If
  33.         Dim DRArticulo As DataRow
  34.         Dim MiCarro As DataTable
  35.  
  36.         Micarro = Session("Carrito")
  37.         DRArticulo = Micarro.NewRow()
  38.         DRArticulo("Cantidad") = "2"
  39.         DRArticulo("Articulo") = "Vino Cantino"
  40.         DRArticulo("Precio") = "64.87"
  41.         Micarro.Rows.Add(DRArticulo)
  42.         Session("Carrito") = Micarro
  43.  
  44.     End Sub
  45.  
  46.     Sub GVBebidas_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GVBebidas.RowCommand
  47.  
  48.  
  49.         If e.CommandName = "Añadir" Then
  50.             Añadir_Articulo()
  51.             Label1.Text = "Articulo Añadido"
  52.  
  53.         End If
  54.  
  55.     End Sub

2 - Tengo una página para que el uusuario pueda ver el estado de su carro. Quiero que el GridView muestre su contenido al cargar la página... pero no lo muestra. En cambio, si pongo un botón que llame a "Añadir_Articulo", añade el artículo y se muestra el contenido del GridView.

Código vb:
Ver original
  1. Private Sub Page_Load(ByVal s As Object, ByVal e As EventArgs)
  2.         If Not Page.IsPostBack And Session("Carrito") Is Nothing Then
  3.  
  4.             CrearCarro()
  5.         Else
  6.             Micarro = Session("Carrito")
  7.         End If
  8.  
  9.         GridView1.DataSource = Micarro
  10.         GridView1.DataBind()
  11.         GridView1.Visible = True
  12.     End Sub

Algún consejo? Gracias!!

Última edición por Eloytxo; 22/12/2009 a las 04:28