采用Cookie实现 购物车

购物流程图:


采用Cookie实现购物车,由于cookie的存储空降最大只有4KB,所尽量不要存太多的数据,存一下商品编号、数量就可以啦!


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; }
    }

}








  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值