using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Web;using System.Collections.Specialized;namespace EWSLSite.Bll...{ /**//// <summary> /// 购物车 /// </summary> public class EWSLShop_ShopCart ...{ /**//// <summary> /// 放进购物车 /// </summary> /// <param name="ID">产品编号</param> public void Add(string ID) ...{ //读区购物车COOKIE信息 NameValueCollection nv = GetCart(); if (string.IsNullOrEmpty(nv[ID])) ...{ //不存在,添加 nv.Add(ID, "1"); } else ...{ //存在,数量加一 int n = int.Parse(nv[ID]); n++; nv.Set(ID, n.ToString()); } Save(nv); } /**//// <summary> /// 从购物车中去除商品 /// </summary> /// <param name="ID"></param> public void Del(string ID) ...{ NameValueCollection nv = GetCart(); nv.Remove(ID); Save(nv); } /**//// <summary> /// 清空购物车 /// </summary> public void Clear() ...{ HttpContext.Current.Response.Cookies["CartList"].Value = ""; } /**//// <summary> /// 获取购物车中的商品总数 /// </summary> /// <returns></returns> public int GetNum() ...{ int n = 0; n = GetCart().Keys.Count; return n; } /**//// <summary> /// 更改订购数量 /// </summary> public void SetNum(string ID, int Num) ...{ NameValueCollection nv = GetCart(); if (string.IsNullOrEmpty(nv[ID])) ...{ nv.Add(ID, Num.ToString()); } else ...{ nv.Set(ID, Num.ToString()); } Save(nv); } /**//// <summary> /// 获取定单列表 /// </summary> /// <returns></returns> public DataTable GetList() ...{ NameValueCollection nv = GetCart(); string IDs = ""; for (int i = 0; i < nv.Count; i++) ...{ if (IDs.Length > 0) ...{ IDs += "," + nv.GetKey(i); } else ...{ IDs += nv.GetKey(i); } } EWSLShop_Product handle = new EWSLShop_Product(); DataTable dt = handle.GetProInfo(IDs); dt.Columns.Add("Num", typeof(int)); //数量 dt.Columns.Add("Sum", typeof(string)); //小计金额 dt.Columns.Add("ID", typeof(int)); //排序 dt.Columns.Add("price", typeof(string)); for (int i = 0; i < dt.Rows.Count; i++) ...{ string PID = dt.Rows[i]["PID"].ToString(); if (string.IsNullOrEmpty(nv[PID])) //获取产品的数量 ...{ dt.Rows[i]["Num"] = 1; } else ...{ dt.Rows[i]["Num"] = nv[PID]; } dt.Rows[i]["ID"] = GetNvIndex(nv, PID); decimal sum = Convert.ToDecimal(dt.Rows[i]["price"]) * Convert.ToInt32(dt.Rows[i]["Num"]); dt.Rows[i]["Sum"] = sum.ToString("c"); } dt.DefaultView.Sort = "ID"; return dt; } /**//// <summary> /// 从COOKIE读取购物车信息 /// </summary> /// <returns></returns> private NameValueCollection GetCart() ...{ NameValueCollection nv = new NameValueCollection(); //商品 ID、购买数量 if (HttpContext.Current.Request.Cookies["CartList"] != null) ...{ nv = HttpContext.Current.Request.Cookies["CartList"].Values; } return nv; } private int GetNvIndex(NameValueCollection nv, string Key) ...{ for (int i = 0; i < nv.Keys.Count; i++) ...{ if (nv.GetKey(i) == Key) ...{ return i; } } return -1; //没有找到 } /**//// <summary> /// 将信息写入COOKIE /// </summary> /// <param name="nv"></param> private void Save(NameValueCollection nv) ...{ HttpCookie cookie = new HttpCookie("CartList"); cookie.Expires = DateTime.Now.AddDays(31); /**////将信息写到添加COOKIE中 foreach (string key in nv.AllKeys) ...{ cookie[key] = nv[key]; } HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); HttpContext.Current.Response.Cookies.Set(cookie); } }}