C#基于cookie實(shí)現(xiàn)的購物車功能
本文實(shí)例講述了C#基于cookie實(shí)現(xiàn)的購物車。分享給大家供大家參考,具體如下:
下面的代碼將商品添加到cookie中,這里就不再編寫添加商品到購物車的頁面流程,而是直接使用代碼實(shí)現(xiàn)
HttpCookie cookie = new HttpCookie("shop");
//cookie.values集合能夠存儲(chǔ)多個(gè)鍵值對,其中add方法的第一個(gè)參數(shù)是商品編號,第二個(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)將購買的商品添加到購物車中。其中使用了cookie的values集合,第一個(gè)參數(shù)是商品編號,第二個(gè)參數(shù)是商品名稱和價(jià)格。
第二步是顯示購物車
/// <summary>
/// 顯示購物車
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
LoadShop();
}
//顯示購物車
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è)鍵值對
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è)鍵值對中的值
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)寫的很清楚了。
第三步是刪除購物車中商品
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();
}
}
希望本文所述對大家C#程序設(shè)計(jì)有所幫助。
欄 目:C#教程
本文標(biāo)題:C#基于cookie實(shí)現(xiàn)的購物車功能
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/6770.html
您可能感興趣的文章
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新聞效果的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實(shí)現(xiàn)多線程下載文件的方法
- 01-10C#實(shí)現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10C#實(shí)現(xiàn)遠(yuǎn)程關(guān)閉計(jì)算機(jī)或重啟計(jì)算機(jī)的方法
- 01-10C#自定義簽名章實(shí)現(xiàn)方法
- 01-10C#文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)方法
- 01-10winform實(shí)現(xiàn)創(chuàng)建最前端窗體的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什


