C#基于cookie实现的购物车功能
本文实例讲述了C#基于cookie实现的购物车。分享给大家供大家参考,具体如下:
下面的代码将商品添加到cookie中,这里就不再编写添加商品到购物车的页面流程,而是直接使用代码实现
HttpCookiecookie=newHttpCookie("shop"); //cookie.values集合能够存储多个键值对,其中add方法的第一个参数是商品编号,第二个参数是商品名称和价格,中间用都好分隔。 cookie.Values.Add("1","电脑,2000"); cookie.Values.Add("2","电视,2200"); cookie.Values.Add("3","冰箱,2300"); cookie.Expires=DateTime.Now.AddDays(1); Response.Cookies.Add(cookie);
好,上面已经将购买的商品添加到购物车中。其中使用了cookie的values集合,第一个参数是商品编号,第二个参数是商品名称和价格。
第二步是显示购物车
///<summary> ///显示购物车 ///</summary> ///<paramname="sender"></param> ///<paramname="e"></param> protectedvoidButton2_Click(objectsender,EventArgse) { LoadShop(); } //显示购物车 privatevoidLoadShop() { //首先判断名称为"shop"的cookie是否存在 if(Request.Cookies["shop"]!=null) { HttpCookiecookie=Request.Cookies["shop"]; StringBuildersb=newStringBuilder(); sb.Append("<table>"); //便利此cookie的values集合,取出每一个键值对 for(inti=0;i<cookie.Values.Count;i++) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<ahref=WebForm5.aspx?id="+cookie.Values.AllKeys[i]+">删除<a/>"); sb.Append("</td>"); sb.Append("<td>"); //获取每个键值对中的值 string[]shops=cookie.Values[i].Split(','); //获取商品名称 sb.Append("<td>"+shops[0]+"</td>"); //获取商品价格 sb.Append("<td>"+shops[1]+"</td>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("</table>"); mydiv.InnerHtml=sb.ToString(); } }
其中注释已经写的很清楚了。
第三步是删除购物车中商品
protectedvoidPage_Load(objectsender,EventArgse) { if(!IsPostBack) { if(!string.IsNullOrEmpty(Request.QueryString["id"])) { stringid=Request.QueryString["id"]; DeleteShop(id); } } } privatevoidDeleteShop(stringid) { if(Request.Cookies["shop"]!=null) { HttpCookiecookie=Request.Cookies["shop"]; cookie.Values.Remove(id); if(cookie.Values.Count==0) { cookie.Expires=DateTime.Now.AddDays(-1); } Response.Cookies.Add(cookie); LoadShop(); } }
希望本文所述对大家C#程序设计有所帮助。