Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2012, 02:44
eltravieso_stone_15
 
Fecha de Ingreso: junio-2012
Ubicación: Lima(Peru)
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Carrito De Compras Aspx C# Evento gvProductos_RowUpdating



Mi problemas es estoy elaborando un carrito de compras en ASPX C# hasta el momento eh podido implementar pero llevo unos dias atras tratando de implementar modificar mi grid se me podrian ayudar o almenos dar una pista de como realizar la sintaxis en el evento "gvProductos_RowUpdating" Eh probado mil formas pero la grilla no se actualiza con la nueva cantidad tanpoco el valor del subtotal calculado ya que esta en una lista que la cual la guardo en una variable de sesion que esta en memoria pero no logro dar con la posicion por lo cual no modifica nada y me devuelve los mismos valores de la grilla sera un gran alivio y se los agradeceria mucho o cualquier ayuda gracias de antemano ...

[email protected]

Código ASP:
Ver original
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AgregarCarrito.aspx.cs" Inherits="WebSiteElVeloz.AgregarCarrito" MasterPageFile="~/Principal.Master"%>
  2.  
  3. <asp:Content ID ="Carrito" ContentPlaceHolderID ="Contenido" runat ="server" >
  4. <form id="frmcarrito" runat="server">
  5. <h1 class="style1">Lista de Compras &quot;Distribuidora El Veloz &quot;</h1>
  6. <div >
  7. <h3><a href ="pedido.aspx"  style="text-align: right ">Regresar...</a></h3>
  8. </div>
  9.       <asp:GridView ID="gvProductos" runat="server"  DataKeyNames ="IdProducto"
  10.           AutoGenerateColumns="false" BorderStyle="None" GridLines ="None"
  11.           onrowcommand="gvProductos_RowCommand"  AutoGenerateEditButton="true"
  12.     onrowcancelingedit="gvProductos_RowCancelingEdit"
  13.     onrowediting="gvProductos_RowEditing"
  14.     onrowupdating="gvProductos_RowUpdating" >
  15.        <Columns >
  16.        
  17.            <asp:TemplateField >
  18.              <ItemTemplate >
  19.                    <asp:image ID ="lblImagen"  runat ="server" width="130px"  ImageUrl ='<%# "~/IMAGENES/" + Eval("Imagen")  %>' />
  20.              </ItemTemplate>            
  21.            </asp:TemplateField>
  22.            
  23.            <asp:TemplateField  ItemStyle-VerticalAlign ="Top"  ItemStyle-HorizontalAlign ="Left" HeaderText ="Descripcion"  >
  24.               <ItemTemplate >
  25.                   <asp:Label ID ="lblnombre"  runat ="server"  Text = '<%# Eval("Nombre") %>' ForeColor="#006699" Font-Bold="true" Font-Size="Small"  />
  26.                   <br/>              
  27.                   <asp:Label ID ="lbldescripcion"  runat ="server"  Text = '<%# Eval("Descripcion") %>' ForeColor="#006699" Font-Bold="true" Font-Size="Small" />                                
  28.                   <br/>    
  29.               </ItemTemplate>
  30.            </asp:TemplateField>
  31.            
  32.              <asp:TemplateField  ItemStyle-VerticalAlign ="Top"  ItemStyle-HorizontalAlign ="Left" HeaderText ="  Precio "  >
  33.               <ItemTemplate >      
  34.                   <asp:Label ID ="lblPrecio2"  runat ="server"  Text = '<%# "S/. " + Eval("Precio") %>' Font-Bold="true" ForeColor="#006699"  Font-Size="Small" />  
  35.               </ItemTemplate>
  36.            </asp:TemplateField>
  37.            
  38.             <asp:TemplateField  ItemStyle-VerticalAlign ="Top"  ItemStyle-HorizontalAlign ="Center" HeaderText ="Cantidad"  >
  39.                 <EditItemTemplate>
  40.                     <asp:DropDownList ID="ddlcant" runat="server">
  41.                     </asp:DropDownList>
  42.                 </EditItemTemplate>
  43.               <ItemTemplate >      
  44.                   <asp:Label ID ="lblCant"  runat ="server"  Text = '<%# Eval("Cantidad ") %>' Font-Bold="true" ForeColor="#006699"  Font-Size="Small" ></asp:Label>  
  45.               </ItemTemplate>
  46.            </asp:TemplateField>
  47.          
  48.             <asp:TemplateField  ItemStyle-VerticalAlign ="Top"  ItemStyle-HorizontalAlign ="Left" HeaderText ="  SubTotal  "  >
  49.               <ItemTemplate >      
  50.                   <asp:Label ID ="lblSubt"  runat ="server"  Text = '<%# "S/. " + Eval("SubTotal") %>' Font-Bold="true" ForeColor="#006699"  Font-Size="Small" />  
  51.               </ItemTemplate>
  52.            </asp:TemplateField>
  53.            
  54.            <asp:TemplateField >
  55.               <ItemTemplate >
  56.                 <asp:LinkButton  ID ="lkbImagen"  runat ="server"  CommandName ="borrar" CommandArgument = '<%# Eval("IdProducto") %>'     >
  57.                  <img alt="Eliminar" src="images/cart_remove.png" width ="20px"  style ="border: none" />
  58.                
  59.                 </asp:LinkButton>
  60.               </ItemTemplate>
  61.            </asp:TemplateField>
  62.            
  63.        </Columns>
  64.    
  65.     </asp:GridView>
  66.     <div class="style1"><asp:Button ID="btncompra" runat="server" Text="Comprar Productos"
  67.     ForeColor="#006699" BackColor="White" BorderColor="#006699"
  68.             onclick="btncompra_Click"/></div>
  69. </form>
  70. </asp:Content>
  71. <asp:Content ID="Content1" runat="server" contentplaceholderid="head">
  72.  
  73. </asp:Content>
  74.  
  75.  
  76. using MySql.Data;
  77. using MySql.Data.MySqlClient;
  78.  
  79. namespace WebSiteElVeloz
  80. {
  81.     public partial class AgregarCarrito : System.Web.UI.Page
  82.     {
  83.         protected void Page_Load(object sender, EventArgs e)
  84.         {
  85.             btncompra.Attributes.Add("onclick", "javascript:alert('Comprobante Generado');");
  86.             if (!Page.IsPostBack)
  87.             {
  88.                 string codigoproducto = Page.Request.QueryString["codigo"];
  89.                 if (string.IsNullOrEmpty(codigoproducto))
  90.                     Page.Response.Redirect("~/pedido.aspx");
  91.                
  92.                 productosDAL producto = new productosDAL();
  93.   producto.AbrirConex(ConfigurationManager.ConnectionStrings["cadena"].ConnectionString);
  94.  
  95.                 MySqlDataReader dr;
  96.  
  97.                 dr = producto.ObtenerDatosProducto(int.Parse(codigoproducto));
  98.  
  99.                RegistroCarroCompra regCarroCompra  = new RegistroCarroCompra();
  100.  
  101.                 while (dr.Read())
  102.                 {
  103.                     regCarroCompra = new RegistroCarroCompra();
  104.                     regCarroCompra.IdProducto = int.Parse(dr["id"].ToString());
  105.                     regCarroCompra.Nombre = dr["nombrecomercial"].ToString();
  106.                     regCarroCompra.Precio = decimal.Parse(dr["precioventa"].ToString());
  107.                     regCarroCompra.Imagen = dr["imagen"].ToString();
  108.                     regCarroCompra.Descripcion = dr["empresa"].ToString();
  109.                     regCarroCompra.Cantidad = 1;
  110.                     regCarroCompra.SubTotal = regCarroCompra.Cantidad * regCarroCompra.Precio;
  111.                 }
  112.           producto.CerrarConex(ConfigurationManager.ConnectionStrings["cadena"].ConnectionString);
  113.  
  114.                 List<RegistroCarroCompra> ListaRegCarroCompra = null;
  115.  
  116.                 if (Session["CarroCompras"] == null)
  117.                     ListaRegCarroCompra = new List<RegistroCarroCompra>();
  118.                 else
  119.                     ListaRegCarroCompra = (List<RegistroCarroCompra>)Session["CarroCompras"];
  120.  
  121.                 if (!ProductoYaExiste(int.Parse(codigoproducto), ListaRegCarroCompra))
  122.                     ListaRegCarroCompra.Add(regCarroCompra);
  123.  
  124.                 Session["CarroCompras"] = ListaRegCarroCompra;
  125.                 gvProductos.DataSource = Session["CarroCompras"];
  126.                 gvProductos.DataBind();
  127.  
  128.             }
  129.         }
  130.  
  131.         protected void gvProductos_RowCommand(object sender, GridViewCommandEventArgs e)
  132.         {
  133.             if (e.CommandName == "borrar")
  134.                 borrar(int.Parse(e.CommandArgument.ToString()));
  135.         }
  136.  
  137.       private void borrar(int codigo)
  138.         {
  139.             // Implemementar
  140.             List<RegistroCarroCompra> ListaRegCarroCompra = null;
  141.             ListaRegCarroCompra = (List<RegistroCarroCompra>)Session["CarroCompras"];
  142.             int posicion = 0;
  143.             foreach (RegistroCarroCompra item in ListaRegCarroCompra )
  144.             {
  145.                 if (item.IdProducto == codigo)
  146.                     break;
  147.                 posicion += 1;
  148.             }
  149.             ListaRegCarroCompra.RemoveAt(posicion );
  150.             Session["CarroCompras"] = ListaRegCarroCompra;
  151.             gvProductos.DataSource = Session["CarroCompras"];
  152.             gvProductos.DataBind();
  153.  
  154.         }
  155.         protected void gvProductos_RowEditing(object sender, GridViewEditEventArgs e)
  156.         {
  157.             gvProductos.EditIndex = e.NewEditIndex;
  158.             int id = Convert.ToInt32(gvProductos.DataKeys[e.NewEditIndex].Value);
  159.             gvProductos.DataSource = Session["CarroCompras"];
  160.             gvProductos.DataBind();
  161.             DropDownList combo = gvProductos.Rows[e.NewEditIndex].FindControl("ddlcant") as DropDownList;
  162.  
  163.             if (combo != null)
  164.             {
  165.                 for(int i =1;i <=50;i ++){
  166.                 combo.Items.Add(i.ToString());
  167.                 combo.DataBind();
  168.                 }
  169.             }
  170.  
  171.         }
  172.         protected void gvProductos_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  173.         {
  174.             gvProductos.EditIndex = -1;
  175.             gvProductos.DataSource = Session["CarroCompras"];
  176.             gvProductos.DataBind();
  177.         }
  178.  
  179.         protected void gvProductos_RowUpdating(object sender, GridViewUpdateEventArgs e)
  180.         {
  181.             int id = Convert.ToInt32(gvProductos.DataKeys[e.RowIndex].Value);
  182.  
  183.             DropDownList combo = gvProductos.Rows[e.RowIndex].FindControl("ddlcant") as DropDownList;
  184.             int cant = Convert.ToInt32(combo.SelectedValue);
  185.         }
  186.     }
  187.     public struct RegistroCarroCompra
  188.     {
  189.         public int IdProducto { get; set; }
  190.         public string Nombre { get; set; }
  191.         public string Descripcion { get; set; }
  192.         public decimal Precio { get; set; }
  193.         public decimal SubTotal { get; set; }
  194.         public int Cantidad { get; set; }
  195.         public string Imagen { get; set; }
  196.     }
  197.     }