HashTable实现购物车
来源:互联网 发布:北京环鼎铭阳网络 编辑:程序博客网 时间:2024/06/06 02:48
http://blog.csdn.net/happy664618843/article/details/5890422
用户购买商品时
if (e.CommandName.ToLower() == "buy")
{
//判断用户购物车是否为空 如果为空则分配一个
Hashtable table;
if (Session["car"] == null)
{
table = new Hashtable();
}
else
{
//用户购物车己存在 则取出数据
table = Session["car"] as Hashtable;
}
//如果用户购物车中不包括该商品信息 则添加一个新商品
if (!table.Contains(e.CommandArgument))
{
table.Add(e.CommandArgument, 1);//添加一个新商品 数量为1
}
else
{
//如果购物车己存在该商品信息 则将该商品的数量加1 根据HashTable的键获取相对应的值
int count = Convert.ToInt32(table[e.CommandArgument].ToString());
//给该商品数量加上1
table[e.CommandArgument] = (count + 1);
}
//保存商品信息
Session["car"] = table;
Response.Redirect("shoppingcar.aspx");
}
//商品信息列表
private void shoplist()
{
Hashtable table;
if (Session["car"] == null)
{
table = new Hashtable();
}
else
{
table = Session["car"] as Hashtable;
}
if (table.Count == 0)
{
Image13.Visible = true;
Msg.Visible = true;
Msg.Text = "<b style="color:red" mce_style="color:red">您还没有购物呢?赶快购物吧!</b>";
}
string[] Arrkey = new string[table.Count];
int[] ArrVal = new int[table.Count];
table.Keys.CopyTo(Arrkey, 0);
table.Values.CopyTo(ArrVal, 0);
//定义字符串 形成 ('1,2,3')
string Products = "('";
int k = 0;
for (int j = 0; j < Arrkey.Length; j++)
{
if(k>0)Products += "','"; k++;
Products += Arrkey.GetValue(j).ToString();
}
Products += "')";
DataSet ds = productbll.GetInfoByWhere(" pid in " + Products);
DataTable Table1 = new DataTable();
Table1 = ds.Tables[0];
Table1.Columns.Add(new DataColumn("shuliang", System.Type.GetType("System.Int32")));
//得到pid的值 并将它设置为Table1的主键
DataColumn[] keys = { Table1.Columns["pid"]};
Table1.PrimaryKey = keys;
foreach (string key in table.Keys)
{
Table1.Rows.Find(key)["shuliang"] = table[key];//根据键获取值 商品的数量
}
Table1.Columns.Add(new DataColumn("zongjia", System.Type.GetType("System.Double"), "hotprice*shuliang"));
for (int n = 0; n < Table1.Rows.Count; n++)
{
tPrice +=Convert.ToDouble(Table1.Rows[n]["zongjia"]);
}
Label1.Text = tPrice.ToString();
Session["total"] = Label1.Text.ToString();
MyGrid.DataSource = Table1.DefaultView;
MyGrid.DataBind();
}
- #region 从购物车中删除一条商品信息
- protected void MyGrid_RowCommand(object sender, GridViewCommandEventArgs e)
- {
- Hashtable table;
- if (Session["car"] == null)
- {
- table = new Hashtable();
- }
- else
- {
- table = Session["car"] as Hashtable;
- }
- //如果点击删除按钮 则从购物车中移除该商品信息
- if (e.CommandName.ToLower() == "delete")
- {
- if (table.ContainsKey(e.CommandArgument))
- {
- //从HashTable中移除该商品的信息(商品编号) 键:为商品编号 值为:商品数量
- table.Remove(e.CommandArgument);
- }
- Msg.Text = (string)e.CommandArgument;
- }
- Session["car"] = table;
- //调用方法
- shoplist();
- }
- #endregion
- HashTable实现购物车
- HashTable实现购物车
- Session+Hashtable实现购物车
- 使用hashtable实现的购物车
- asp.net基于HashTable实现购物车的方法
- 利用Session和HashTable制作购物车
- JSP只用Hashtable和session实现购物车功能的简单实例
- 购物车的实现
- JSP 购物车实现
- profile实现购物车
- Ajax实现购物车
- session实现购物车
- 购物车实现
- 购物车实现原理
- 实现购物车
- 购物车的实现
- 购物车的实现
- 购物车实现基本
- 《剑指Offer》学习笔记--面试题25:二叉树中和为某一直的路径
- ArrayList,Vector, LinkedList的存储性能和特性
- 《炉石传说》架构设计赏析(6):卡牌&技能数据的运行时组织
- ch10_2_4.m
- FF中jquery获取window高度的问题
- HashTable实现购物车
- Andrew NG 机器学习课程笔记(一)
- 《炉石传说》架构设计赏析(7):使用ProtocolBuffers处理网络消息
- 浅谈Java中的浅克隆与深克隆
- 红米note4g版,Android4.4.4开启开发者模式
- 剑指offer 面试题19—二叉树的镜像
- 杭电2037
- 《JAVA与模式》之适配器模式
- 简单工厂模式 工厂模式 抽象工厂模式