Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2011, 11:07
Avatar de moron
moron
 
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Actualizar un registro en session

Hola:

Estoy utilizando un gridview para armar mi carrito de compras. El objeto pedido mas las líneas del pedido las guardo en session y de ahí lo tomo como datasource de la grilla seteandolo en el código.
En uno de los campos, quiero que el usuario setee la cantidad. Cómo hago para capturar el valor de la cantidad de cada item cuando el usuario realiza algún cambio?.
Básicamente necesito recorrer la grilla y tomar el valor del textBoxCantidad. O si hay algún método mejor de hacerlo.

Este es mi codigo aspx:

Código:
<asp:GridView ID="GridViewCarrito" runat="server" AutoGenerateColumns="False">
        <Columns>
        <asp:TemplateField HeaderText="Producto">
        <ItemTemplate>
        <asp:Label runat="server" Text='<%#Eval("Producto.Codigo")%>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
           <asp:TemplateField HeaderText="Cantidad">
        <ItemTemplate>
        <asp:TextBox ID="TextBoxCantidad" Text="1"  runat="server"></asp:TextBox>
        </ItemTemplate>
        </asp:TemplateField>
           <asp:TemplateField HeaderText="Precio">
        <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text=' <%#Eval("Producto.Precio")%>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
            
           <asp:TemplateField HeaderText="Total">
        <ItemTemplate>
        <asp:Label ID="LabelPrecioTotal" runat="server" Text='<%# Eval("Producto.Precio")%>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
          
    
        </Columns>
    </asp:GridView>
El código en C#:

Código:
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Pedido"] != null)
            {
                if (((Pedido)Session["Pedido"]).Lineas.Count != 0)
                {
                    GridViewCarrito.DataSource = ((Pedido)Session["Pedido"]).Lineas;
                    GridViewCarrito.DataBind();
                }
                else
                {
                    LabelCarritoVacío.Text = "El carrito se encuentra vacío";
                    ButtonConfirmar.Visible = false;
                }
            }
            else
            {
                LabelCarritoVacío.Text = "El carrito se encuentra vació";
                ButtonConfirmar.Visible = false;

            }
        }


Muchas gracias desde ya.