C#基于cookie實(shí)現(xiàn)的購(gòu)物車功能
本文實(shí)例講述了C#基于cookie實(shí)現(xiàn)的購(gòu)物車。分享給大家供大家參考,具體如下:
下面的代碼將商品添加到cookie中,這里就不再編寫(xiě)添加商品到購(gòu)物車的頁(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)買的商品添加到購(gòu)物車中。其中使用了cookie的values集合,第一個(gè)參數(shù)是商品編號(hào),第二個(gè)參數(shù)是商品名稱和價(jià)格。
第二步是顯示購(gòu)物車
/// <summary>
/// 顯示購(gòu)物車
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
LoadShop();
}
//顯示購(gòu)物車
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)物車中商品
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#如何將List<string>轉(zhuǎn)換為L(zhǎng)ist<double>
這篇文章主要介紹了C#如何將List<string>轉(zhuǎn)換為L(zhǎng)ist<double>問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
C#中把英文字母轉(zhuǎn)換為大寫(xiě)或小寫(xiě)的方法
這篇文章主要介紹了C#中把英文字母轉(zhuǎn)換為大寫(xiě)或小寫(xiě)的方法,在編碼中是一個(gè)比較常用的功能,需要的朋友可以參考下2014-08-08
C#中Monitor對(duì)象與Lock關(guān)鍵字的區(qū)別分析
這篇文章主要介紹了C#中Monitor對(duì)象與Lock關(guān)鍵字的區(qū)別,需要的朋友可以參考下2013-06-06
C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格
這篇文章主要為大家詳細(xì)介紹了如何使用C#實(shí)現(xiàn)讀取二維數(shù)組集合并輸出到Word預(yù)設(shè)表格,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)
這篇文章介紹了C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
c#之利用API函數(shù)實(shí)現(xiàn)動(dòng)畫(huà)窗體的方法詳解
本篇文章是對(duì)c#中利用API函數(shù)實(shí)現(xiàn)動(dòng)畫(huà)窗體的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

