ASP.NET知识总结(9.使用Cookies实现购物车)

ListInfo.aspx向购物车的添加商品的方法

private void GouWu(string name, double price, string id)   

 {        

   //往购物车中添加商品        

  HttpCookie hc = null;        

  if (Request.Cookies["ShoppingCart"] == null)        

  {            

    //如果Cookies中不存在ShoppingCart,则创建            

     hc = new HttpCookie("ShoppingCart");    
       }        

  else        

  {            

    //如果Cookies中存在ShoppingCart,则取出            

     hc= Request.Cookies["ShoppingCart"];            
       }        

   bool flag=true;//标记在购物车中是否存在本次选择的物品

        //在购物车的Cookies中查找是否存在这次要选择的物品        

  foreach (string item in hc.Values)        

  {            

    if (item == id)            

     {                

      flag = false;                

      break;            

     }        

  }        

  if (flag)        

  {            

     //如果选择的内容在购物车中没有,则创建一个新的子键            

     hc.Values.Add(id, id + "|" + name + "|" + price + "|" + 1 + "|");             

  }        

  else        

   {            

    //如果选择的内容在购物车中没,则删除原来的,添加一个新的            

    int num = int.Parse(hc.Values[id].Split(new char[] { '|' })[3]) + 1;            

     hc.Values.Remove(id);            

    hc.Values.Add(id,id + "|" + name + "|" + price + "|" + num + "|");        

  }        

  hc.Expires = DateTime.Now.AddDays(1);        

   Response.Cookies.Add(hc);        

   Response.Redirect("ShoppingCart.aspx");    

}

ShoppingCart.aspx页面的Load事件中

 List<ShoppingCart> list = new List<ShoppingCart>();        

   //循环从购物车中取出物品添加到集合        

  foreach (string item in Request.Cookies["ShoppingCart"].Values)        

   {            

    if (item != null)            

    {                

      char[] sp = { '|' };

                string[] w = Request.Cookies["ShoppingCart"][item].Split(sp);

                ShoppingCart gwc = new ShoppingCart();                

         gwc.Id = w[0];                

      gwc.Name = w[1];                

       gwc.Price = int.Parse(w[2]);                

       gwc.Number = int.Parse(w[3]);                

       list.Add(gwc);            

     }        

   }        

  GridView1.DataSource = list;        

   GridView1.DataBind();

 ShoppingCart类代码

public class ShoppingCart

{  

  public ShoppingCart()  

  {   

  //   

  //TODO: 在此处添加构造函数逻辑

    //        
   }   

      string name;

      public string Name    

    {        

      get { return name; }        

       set { name = value; }    

    }    

    double price;

      public double Price     {         get { return price; }         set { price = value; }     }    

    string id;

      public string Id     {         get { return id; }         set { id = value; }     }    

     int number;

      public int Number     {         get { return number; }         set { number = value; }     }

}

原文地址:https://www.cnblogs.com/fenger-VIP/p/4326381.html