学习PetShop3.0(3)模仿购物车的简单可变类

转载 2006年06月16日 08:17:00

今天晚上看了近两个小时的购物车,基本把原理弄明白了,先写一个类似结构的类来简单的演示一下
Store类模仿购物车内的物品
public class Store
{
private string name;
private int id;
private DateTime time;

public Store(string name,int id,DateTime time)
{
this.name=name;
this.id=id;
this.time=time;
}

//属性
public string Name
{
get{return this.name;}
}

public int Id
{
get{return this.id;}
}

public DateTime Time
{
get{return this.time;}
}
}

StoreList类模仿购物车
public class StoreList : IEnumerable
{
ArrayList al=new ArrayList();
public StoreList()
{}

//向车内添加物品
public void Add(Store st)
{
this.al.Add(st);
}

//返回全部物品
public ArrayList List
{
get{return this.al;}
}

//实现IEnumerable接口
#region IEnumerable 成员

public IEnumerator GetEnumerator()
{
return this.al.GetEnumerator();
}

#endregion

//添加一个索引器,注意没有判断索引数的合法性
public Store this[int index]
{
get{return (Store)al[index];}
}

//物品的数量
public int Count
{
get{return al.Count;}
}
}

最后的演示页面
public class TestStore : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button addStore;
protected System.Web.UI.WebControls.Label showMsg;

private void Page_Load(object sender, System.EventArgs e)
{
show();
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.net Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.addStore.Click += new System.EventHandler(this.addStore_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

//点击添加按钮后的处理事件,向保存在Session中的购物车添加一个商品
private void addStore_Click(object sender, System.EventArgs e)
{
Store st=new Store("alex",0,DateTime.Now);

//检查Session内是否存有购物车,如没有,则添加一个
if(Session["stxx"]==null)
{
StoreList sl=new StoreList();
Session["stxx"]=sl;
}

//从Session中得到购物车,然后向里面添加一个商品
StoreList sls=(StoreList)Session["stxx"];
sls.Add(st);

//注意这里,最后分析这个
//Session["stxx"]=sls;

}

//展示购物车内的商品
private void show()
{
StringBuilder sb=new StringBuilder();
if(Session["stxx"]!=null)
{
StoreList sls=(StoreList)Session["stxx"];

//利用索引循环取出商品
for(int i=0;i<sls.Count;i++)
sb.Append(sls[i].Time.ToString()+"<br>");
showMsg.Text=sb.ToString();
}
}
}

Store是一个瘦实体类,而StoreList是一个可变类。StoreList类通过里面的ArrayList保存Store类,并提供了相应的方法来对Store进行操作。
来看这个:
//从Session中得到购物车,然后向里面添加一个商品
StoreList sls=(StoreList)Session["stxx"];
sls.Add(st);

//注意这里,最后分析这个
//Session["stxx"]=sls;

这里涉及到一个关于Session的问题,由于我们的StoreList保存在了Session中,所以每次操作都要先从Session里把StoreList取出来,但是在操作完后,并没有再把StoreList保存回Session,这主要是因为我们提取出来的并不是Session里保存的值,而只是得到了对Session里保存的值的引用,所以之后的操作其实都是在对Session里保存的值进行,就没有必要最后再保存了。

学习PetShop3.0(3)模仿购物车的简单可变类

一个类似结构的类来简单的演示一下Store类模仿购物车内的物品public class Store{private string name;private int id;private DateTim...
  • shuilv2000
  • shuilv2000
  • 2008年10月09日 14:30
  • 409

学习PetShop3.0(4)购物车

终于到购物车了,在看这个之前应该已经明白了第三篇的那个模型,这样购物车基本也就明白了。来看一下ShoppingCart.aspx这个页。当你看好了一个宠物,比如可爱的Golden Retriever,...
  • shuilv2000
  • shuilv2000
  • 2008年10月09日 14:36
  • 326

用List实现简单购物车类

import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSession; /** * 购...
  • yanyu529584640
  • yanyu529584640
  • 2014年05月17日 17:43
  • 346

Android-简单的商城购物车Demo

购物车包含两块1;listview +textview 2;listview自定义适配器 点击一下加或者减就用Handle sent传回主线程计算总价; handle中 sentMessa...
  • u013364759
  • u013364759
  • 2016年10月17日 19:13
  • 1700

angularjs简单购物车源码

显示: Title 产品编号 ...
  • dancheng1
  • dancheng1
  • 2017年10月08日 21:59
  • 378

简单的购物车和购物车结算

购买部分 HTML部分 加入购物车
  • cainiao_xiao_bai
  • cainiao_xiao_bai
  • 2017年09月03日 13:13
  • 166

一个简单的PHP购物车系统

1、需求分析  我们需要找到一种将数据库连接到用户的浏览器的方法。用户能够按目录浏览商品。 用户应该能够从商品目录中选取商品以便此后的购买。我们也要能够记录他们选中的物品。 当用户完成购买,要合计...
  • q547550831
  • q547550831
  • 2015年09月02日 15:50
  • 19214

vue实例(京东购物车)

今天用vue模仿京东购物车,写了一个简单的购物车, 主要功能有: 1)每一项商品的小计等于商品单价与商品数量的乘积; 2)当商品前面的复选框被选中的时候,计算所有选中的商品的总价和总的数量,该列...
  • huchangjiang0
  • huchangjiang0
  • 2017年08月03日 10:28
  • 357

javaweb简单模拟购物车

下面的代码主要实现了保存密码,自动登录,用Session保存购买信息的功能。BookAddedListener.java package ex2;import javax.servlet.http....
  • qq_33665647
  • qq_33665647
  • 2016年10月22日 17:21
  • 3185

ssm实战--实现购物车功能

========================================后台管理系统================================================== 管...
  • Aurora_sss
  • Aurora_sss
  • 2017年07月01日 18:03
  • 2768
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习PetShop3.0(3)模仿购物车的简单可变类
举报原因:
原因补充:

(最多只允许输入30个字)