C#基于cookie實(shí)現(xiàn)的購(gòu)物車(chē)功能
本文實(shí)例講述了C#基于cookie實(shí)現(xiàn)的購(gòu)物車(chē)。分享給大家供大家參考,具體如下:
下面的代碼將商品添加到cookie中,這里就不再編寫(xiě)添加商品到購(gòu)物車(chē)的頁(yè)面流程,而是直接使用代碼實(shí)現(xiàn)
HttpCookie cookie = new HttpCookie("shop"); //cookie.values集合能夠存儲(chǔ)多個(gè)鍵值對(duì),其中add方法的第一個(gè)參數(shù)是商品編號(hào),第二個(gè)參數(shù)是商品名稱和價(jià)格,中間用都好分隔。 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);
好,上面已經(jīng)將購(gòu)買(mǎi)的商品添加到購(gòu)物車(chē)中。其中使用了cookie的values集合,第一個(gè)參數(shù)是商品編號(hào),第二個(gè)參數(shù)是商品名稱和價(jià)格。
第二步是顯示購(gòu)物車(chē)
/// <summary> /// 顯示購(gòu)物車(chē) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button2_Click(object sender, EventArgs e) { LoadShop(); } //顯示購(gòu)物車(chē) private void LoadShop() { //首先判斷名稱為"shop"的cookie是否存在 if (Request.Cookies["shop"] != null) { HttpCookie cookie = Request.Cookies["shop"]; StringBuilder sb = new StringBuilder(); sb.Append("<table>"); //便利此cookie的values集合,取出每一個(gè)鍵值對(duì) for (int i = 0; i < cookie.Values.Count; i++) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<a href=WebForm5.aspx?id=" + cookie.Values.AllKeys[i] + ">刪除<a/>"); sb.Append("</td>"); sb.Append("<td>"); //獲取每個(gè)鍵值對(duì)中的值 string[] shops = cookie.Values[i].Split(','); //獲取商品名稱 sb.Append("<td>" + shops[0] + "</td>"); //獲取商品價(jià)格 sb.Append("<td>" + shops[1] + "</td>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("</table>"); mydiv.InnerHtml = sb.ToString(); } }
其中注釋已經(jīng)寫(xiě)的很清楚了。
第三步是刪除購(gòu)物車(chē)中商品
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(Request.QueryString["id"])) { string id = Request.QueryString["id"]; DeleteShop(id); } } } private void DeleteShop(string id) { if (Request.Cookies["shop"] != null) { HttpCookie cookie = Request.Cookies["shop"]; cookie.Values.Remove(id); if (cookie.Values.Count == 0) { cookie.Expires = DateTime.Now.AddDays(-1); } Response.Cookies.Add(cookie); LoadShop(); } }
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#中獲取二維數(shù)組的行數(shù)和列數(shù)以及多維數(shù)組各個(gè)維度的長(zhǎng)度
這篇文章介紹了C#中獲取二維數(shù)組的行數(shù)和列數(shù)以及多維數(shù)組各個(gè)維度的長(zhǎng)度,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12c#中多線程訪問(wèn)winform控件的若干問(wèn)題小結(jié)
大部分情況下都會(huì)碰到使用多線程控制界面上控件信息的問(wèn)題。然而我們并不能用傳統(tǒng)方法來(lái)解決這個(gè)問(wèn)題,下面我將詳細(xì)的介紹2013-10-10WPF實(shí)現(xiàn)動(dòng)畫(huà)效果
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01基于WPF編寫(xiě)一個(gè)串口轉(zhuǎn)UDP工具
串口是設(shè)備和上位機(jī)通信的常用接口,UDP則是網(wǎng)絡(luò)通信常用的通信協(xié)議,串口和UDP之間的相互轉(zhuǎn)換是非常有意義的。本文就利用WPF編寫(xiě)一個(gè)串口轉(zhuǎn)UDP工具,需要的可以參考一下2023-04-04C# 利用Aspose.Words.dll將 Word 轉(zhuǎn)成PDF
關(guān)于word轉(zhuǎn)成pdf的方法網(wǎng)上有很多。大部分需要借助office 2007及以上版本的組件。安裝配置起來(lái)比較麻煩。今天偶然得之“Aspose.Words.dll”可以實(shí)現(xiàn)2013-08-08C#將PDF轉(zhuǎn)為多種圖像文件格式的方法(Png/Bmp/Emf/Tiff)
這里介紹將PDF轉(zhuǎn)換多種不同格式的圖像文件格式,如PNG,BMP,EMF,TIFF等,同時(shí),轉(zhuǎn)換文檔也分為轉(zhuǎn)換全部文檔和轉(zhuǎn)換部分文檔為圖片兩種情況,本文也將作進(jìn)一步介紹2018-02-02