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

}

ASP.NET知识总结(9.使用Cookies实现购物车)的更多相关文章

  1. asp相关知识整理

    WWW----World Wide Web(万维网) URL----Uniform Resource Locator(统一资源定位符) HTTP----Hyper Text Transfer Prot ...

  2. ASP.NET知识集

    ASP.NET知识集 编辑删除转载2015-06-23 16:31:55 标签:it //删除指定行数据时,弹出询问对话框 ((LinkButton)(e.Row.Cell[7].Controls[0 ...

  3. 你必须知道ASP.NET知识------从IIS到httpmodule(第一篇)

    一.写在前面 最近有时间,顺便将这系列洗完,接着上文:IIS各个版本知识总结 这篇文章原本计划写到HttpHandler为止,但限于篇幅就写到httpmodule 本文有不足之处,求指正,希望我能将它 ...

  4. 你必须知道ASP.NET知识------关于动态注册httpmodule(对不起汤姆大叔)

    一.关于动态注册的问题 很多人看过汤姆大叔的MVC之前的那点事儿系列(6):动态注册HttpModule ,其实汤姆大叔没有发现httpmodule动态注册的根本机制在哪里. 亦即:怎么动态注册?为什 ...

  5. ASP.NET知识总结(7.状体保持)

    客户端的状态保持方案:ViewState.隐藏域.Cookies.控件状态.URL查询参数 服务端的状态保持方案:Session(会话).Application.Caching(缓存).DataBas ...

  6. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  7. ASP.NET知识总结 (未完) 本人新手

    1:HTTP的工作方式是什么?1)客户端提交表单请求处理 Request2)服务器端处理程序进行处理 Handle3)服务端相应 Response 2:1)get(默认值)是通过地址栏的URL显式地传 ...

  8. ASP.NET知识总结(8.AJAX异步)

    AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术.   不是指一种单一的技术,而是有机 ...

  9. ASP.NET知识总结(6.一般处理程序动态处理图片(验证码、水印、缩略图))

    ->使用GDI+完成图片的处理,需要引入程序集System.Drawing ->GDI+的基本处理模型 <1>创建画布Bitmap <2>创建画图工具对象Graph ...

随机推荐

  1. 5 Django系列之通过list_display展示多对多与外键内容在admin-web界面下

    list_display展示多对多关系的内容 表结构关系 表一 class Server(models.Model): asset = models.OneToOneField('Asset') cr ...

  2. Table 表单样式

    <style> table th { white-space: nowrap; background-color: #f5f5f5; height:30px; font-size:14px ...

  3. web前端基础知识-(四)DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  4. RF Firefox Profile

    默认情况下,robot framework是启动不带任何配置信息的firefox,如果需要启动带有profile的话,增加一个参数即可,如 Open Browser https://aws-qa5.i ...

  5. js数组方法

    数组方法清空数组1: arr.length=02: arr=[]arr.push()//往数组最后一个添加元素,会待会一个返回值,就是新的数组长度arr.unshift()//往数组的第一个添加元素, ...

  6. EmployeeTest

    package fourthf; public class EmployeeTest { public static void main(String[] args) { // TODO Auto-g ...

  7. jquery 返回顶部 兼容web移动

    返回顶部图片 http://hovertree.com/texiao/mobile/6/tophovertree.gif 具体实现代码 <span id="tophovertree&q ...

  8. ASP.MVC 基于AuthorizeAttribute权限设计案例

    ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : Authorize ...

  9. showPrompt弹框提示

    工作中会有很多的弹框,用来添加模板,用来信息提示,,我现在用的模板有dialog(用来添加数据模板内容),还有一个就是自写的showPrompt用来判断错误或者正确的信息~~ 样子大概就是这样的,, ...

  10. 基于.net搭建热插拔式web框架(实现原理)

    第一节:我们为什么需要一个热插拔式的web框架? 模块之间独立开发 假设我们要做一个后台管理系统,其中包括“用户活跃度”.“产品管理”."账单管理"等模块.每个模块中有自己的业务特 ...