无为清净楼资源网 Design By www.qnjia.com
本文实例讲述了asp.net基于HashTable实现购物车的方法。分享给大家供大家参考,具体如下:
//用户购买商品时 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
希望本文所述对大家asp.net程序设计有所帮助。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年09月27日
2024年09月27日
- 梁静茹.2007-崇拜【相信音乐】【WAV+CUE】
- 金佩姗.1997-喜新恋旧【现代派】【WAV+CUE】
- 梁静茹.2007-崇拜【相信音乐】【WAV+CUE】
- 陈晓东.1997-在乎你感受(EP)【宝丽金】【WAV+CUE】
- 纯音入心系列纯音乐《云水禅心 - 佛曲古筝礼赞1-2》1CD[MP3][190MB]
- 纯音入心系列纯音乐《精心传神-古筝》1CD[MP3][363.1MB]
- 纯音入心系列纯音乐《琴瑟古风之古筝精选曲》1CD[MP3][354.1MB]
- 陈晓东.1997-在乎你感受(EP)【宝丽金】【WAV+CUE】
- 黄凯芹.1990-给你留念(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 张学友.1999-有个人【宝丽金】【WAV+CUE】
- 纯音入心系列纯音乐《古筝佛曲》1CD[MP3][411.1MB]
- 纯音入心系列纯音乐《古筝世界名曲》1CD[MP3][38.9MB]
- 纯音入心系列纯音乐《古筝新奏-菩提妙音》1CD[MP3][112.3MB]
- 陈思安.1993-怀念福建金曲5CD【歌丽美】【WAV+CUE】
- 张学友.1999-有个人【宝丽金】【WAV+CUE】