学习PetShop3.0(3)模仿购物车的简单可变类
来源:互联网 发布:开源的数据库防火墙 编辑:程序博客网 时间:2024/05/02 04:57
一个类似结构的类来简单的演示一下
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;}
}
}
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)模仿购物车的简单可变类
- 学习PetShop3.0(3)模仿购物车的简单可变类
- 学习PetShop3.0(4)购物车
- 学习PetShop3.0(4)购物车
- PetShop3.x学习笔记9-购物车参考资料1-模仿购物车
- PetShop3.x学习笔记9-购物车参考资料1-模仿购物车
- 学习petshop3.0(一)
- PetShop3.x学习笔记10-购物车参考资料2-PetShop购物车实现
- PetShop3.x学习笔记10-购物车参考资料2-PetShop购物车实现
- 学习PetShop3.0(4)petshop商品的浏览
- 学习PetShop3.0(9)工厂的资料
- 学习PetShop3.0(3)查询及simplePager控件
- 学习PetShop3.0(1)用户注册
- 学习PetShop3.0(2)宠物展示
- 学习PetShop3.0(5)生成定单
- 学习PetShop3.0(6)实体模型
- 学习PetShop3.0(7)SimplePager
- 学习PetShop3.0(8)数据访问
- 网页窗口关闭前进行提示(适用于IE和FF, 标题栏的X关闭按钮)
- 怎么从邮箱中获取所有联系人列表
- 驱动程序编写及虚拟机调试方式简介
- WEB开发中的分层原则和各层之间的数据传递问题
- stl map高效插入和更新
- 学习PetShop3.0(3)模仿购物车的简单可变类
- 理解并扩展 ASP.NET 2.0 中的站点导航系统
- Linux下编辑十六进制文件
- zlib 库和libpng 的安装:
- 几种常见算法的介绍及复杂度分析
- 【JfaceTextFramework学习笔记之二】内容提示
- 一段判断多种浏览器类型及版本号的脚本代码
- IIS 日志的学习
- Actionscript高质量编程 -- 1 (参照并复制 林锐博士的 《高质量c/c++的编程指南》,只是把c的代码改成了as,其他不变)