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; } }
}
ASP.NET知识总结(9.使用Cookies实现购物车)的更多相关文章
- asp相关知识整理
WWW----World Wide Web(万维网) URL----Uniform Resource Locator(统一资源定位符) HTTP----Hyper Text Transfer Prot ...
- ASP.NET知识集
ASP.NET知识集 编辑删除转载2015-06-23 16:31:55 标签:it //删除指定行数据时,弹出询问对话框 ((LinkButton)(e.Row.Cell[7].Controls[0 ...
- 你必须知道ASP.NET知识------从IIS到httpmodule(第一篇)
一.写在前面 最近有时间,顺便将这系列洗完,接着上文:IIS各个版本知识总结 这篇文章原本计划写到HttpHandler为止,但限于篇幅就写到httpmodule 本文有不足之处,求指正,希望我能将它 ...
- 你必须知道ASP.NET知识------关于动态注册httpmodule(对不起汤姆大叔)
一.关于动态注册的问题 很多人看过汤姆大叔的MVC之前的那点事儿系列(6):动态注册HttpModule ,其实汤姆大叔没有发现httpmodule动态注册的根本机制在哪里. 亦即:怎么动态注册?为什 ...
- ASP.NET知识总结(7.状体保持)
客户端的状态保持方案:ViewState.隐藏域.Cookies.控件状态.URL查询参数 服务端的状态保持方案:Session(会话).Application.Caching(缓存).DataBas ...
- ASP.NET知识总结(3.HTTP协议详解)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...
- ASP.NET知识总结 (未完) 本人新手
1:HTTP的工作方式是什么?1)客户端提交表单请求处理 Request2)服务器端处理程序进行处理 Handle3)服务端相应 Response 2:1)get(默认值)是通过地址栏的URL显式地传 ...
- ASP.NET知识总结(8.AJAX异步)
AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术. 不是指一种单一的技术,而是有机 ...
- ASP.NET知识总结(6.一般处理程序动态处理图片(验证码、水印、缩略图))
->使用GDI+完成图片的处理,需要引入程序集System.Drawing ->GDI+的基本处理模型 <1>创建画布Bitmap <2>创建画图工具对象Graph ...
随机推荐
- Spring MVC学习笔记——引入静态文件
1.在user-servlet.xml中加入以下代码,才能使得对静态文件的请求不被Controller捕获,而映射到一个固定的地址 <!-- 将静态文件指定到某个特殊的文件夹中统一处理 --&g ...
- C# 开源框架
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...
- PHP框架模板原理
PHP框架现在是一种很流行的东西了,很多朋友开发应用与网站都会选择一个PHP框架或模板了,下面我们来看看PHP框架是如何实现的吧. 本文主要来聊聊框架理论,但不针对任何一款框架,不过任何 ...
- 一款强大的Android网络渗透软件dsploit
dSploit是一款基于Android系统的功能十分全面强大的网络渗透工具,可以提供给网络安全工作人员检查网络的安全性.小黑这次主要使用了其中的"简易嗅探""会话劫持&q ...
- Find and delete duplicate files
作用:查找指定目录(一个或多个)及子目录下的所有重复文件,分组列出,并可手动选择或自动随机删除多余重复文件,每组重复文件仅保留一份.(支持文件名有空格,例如:"file name" ...
- Mysql基础(二)
学习路线:数据约束-> 数据库的设计过程-> 存储过程的相关知识-> 触发器-> 权限管理 (一)数据约束 1.1.默认值的设置 创建员工表emp 将默认地址设置为'中国'my ...
- SQL 从指定表筛选指定行信息 获取表行数
1.获取指定表的行数 --获取表中数据行数 --select max([列名]) from 表名 2.筛选指定表的指定行数据(数据表分页获取) http://www.cnblogs.com/morni ...
- COM 组件基础——GUID 和 接口
一.前言 书接上回,话说在 doc(Word) 复合文件中,已经解决了保存 xls(Excel) 数据的问题了.那么,接下来又要解决另一个问题:当 WORD 程序读取复合文件,遇到了 xls 数据的时 ...
- Ecmascript 6新特性
声明变量由var变成let.let实际上为JavaScript新增了块级作用域.let与var相比具有的特性有 1.不允许重复声明一个变量 var a=5; var a=7; let b=6; let ...
- Android M(6.0) 权限相关
原文链接:http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ Android M 新的运行时权限开发者需要知道的一切 an ...