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:
El código en C#:<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>
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.