我把购买的商品放到一个cookie里面
代码如下:
protected void rplist_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "buy")
{
string priductID = e.CommandArgument.ToString();
Label lbpn = (Label)e.Item.FindControl("lbpn");
Label lbpi = (Label)e.Item.FindControl("lbpi");
Label lbpp = (Label)e.Item.FindControl("lbpp"); if (Request.Cookies["priduct"] != null)
{
string cookieValue = "";
if (Request.Cookies["priduct"].Value.Contains(','))
{
string[] str = Request.Cookies["priduct"].Value.Split(',');
int m = 0;
for (int i = 0; i < str.Length - 1; i++)
{
string[] value = str[i].Split('|');
string c = value[2];
if (c == priductID)
{
m = 1;
cookieValue += value[0] + "|" + value[1] + "|" + value[2] + "|" + value[3] + "|" + (int.Parse(value[4]) + 1).ToString() + ",";
}
else
{
cookieValue += value[0] + "|" + value[1] + "|" + value[2] + "|" + value[3] + "|" + value[4] + "";
}
}
if (m == 0)
{
string s = Request.Cookies["priduct"].Value + lbpn.Text + "|" + lbpi.Text + "|" + priductID + "|" + lbpp.Text + "|1|" + ",";
Response.Cookies["priduct"].Value = s;
}
else
{
Response.Cookies["priduct"].Value = cookieValue;
}
}
}
else
{
HttpCookie hc = new HttpCookie("priduct");
Response.Cookies.Add(hc);
hc.Value = lbpn.Text + "|" + lbpi.Text + "|" + priductID + "|" + lbpp.Text + "|1|" + ",";
}
Response.Redirect("GuWuChe.aspx");
}
}然后再到另外一个页面取cookie
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
AddProduct_Intro();
}
private void AddProduct_Intro()
{
int money = 0;
ArrayList list = new ArrayList();
if (Request.Cookies["priduct"] != null)
{
string[] carid = Request.Cookies["priduct"].Value.Split(',');
for (int i = 0; i < carid.Length - 1; i++)
{
string[] cards = carid[i].Split('|');
Product_Introes pi = new Product_Introes();
pi.ProductName = cards[0];
pi.Product_Intro = cards[1];
pi.Product_Price = int.Parse(cards[3]);
pi.Amount = int.Parse(cards[4]);
money += int.Parse(cards[3]) * int.Parse(cards[4]);
list.Add(pi);
} }
rplist.DataSource = list;
rplist.DataBind();
lbMoneySum.Text = money.ToString(); }
//清空购物车
protected void lbtnqingkong_Click(object sender, EventArgs e)
{
if (Request.Cookies["priduct"] != null)
{
Response.Cookies["priduct"].Value = null;
}
}
问题 我清空购物车了 再点购买的时候就购买不了了!!!请哪位高手指点下 谢谢!!!!
代码如下:
protected void rplist_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "buy")
{
string priductID = e.CommandArgument.ToString();
Label lbpn = (Label)e.Item.FindControl("lbpn");
Label lbpi = (Label)e.Item.FindControl("lbpi");
Label lbpp = (Label)e.Item.FindControl("lbpp"); if (Request.Cookies["priduct"] != null)
{
string cookieValue = "";
if (Request.Cookies["priduct"].Value.Contains(','))
{
string[] str = Request.Cookies["priduct"].Value.Split(',');
int m = 0;
for (int i = 0; i < str.Length - 1; i++)
{
string[] value = str[i].Split('|');
string c = value[2];
if (c == priductID)
{
m = 1;
cookieValue += value[0] + "|" + value[1] + "|" + value[2] + "|" + value[3] + "|" + (int.Parse(value[4]) + 1).ToString() + ",";
}
else
{
cookieValue += value[0] + "|" + value[1] + "|" + value[2] + "|" + value[3] + "|" + value[4] + "";
}
}
if (m == 0)
{
string s = Request.Cookies["priduct"].Value + lbpn.Text + "|" + lbpi.Text + "|" + priductID + "|" + lbpp.Text + "|1|" + ",";
Response.Cookies["priduct"].Value = s;
}
else
{
Response.Cookies["priduct"].Value = cookieValue;
}
}
}
else
{
HttpCookie hc = new HttpCookie("priduct");
Response.Cookies.Add(hc);
hc.Value = lbpn.Text + "|" + lbpi.Text + "|" + priductID + "|" + lbpp.Text + "|1|" + ",";
}
Response.Redirect("GuWuChe.aspx");
}
}然后再到另外一个页面取cookie
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
AddProduct_Intro();
}
private void AddProduct_Intro()
{
int money = 0;
ArrayList list = new ArrayList();
if (Request.Cookies["priduct"] != null)
{
string[] carid = Request.Cookies["priduct"].Value.Split(',');
for (int i = 0; i < carid.Length - 1; i++)
{
string[] cards = carid[i].Split('|');
Product_Introes pi = new Product_Introes();
pi.ProductName = cards[0];
pi.Product_Intro = cards[1];
pi.Product_Price = int.Parse(cards[3]);
pi.Amount = int.Parse(cards[4]);
money += int.Parse(cards[3]) * int.Parse(cards[4]);
list.Add(pi);
} }
rplist.DataSource = list;
rplist.DataBind();
lbMoneySum.Text = money.ToString(); }
//清空购物车
protected void lbtnqingkong_Click(object sender, EventArgs e)
{
if (Request.Cookies["priduct"] != null)
{
Response.Cookies["priduct"].Value = null;
}
}
问题 我清空购物车了 再点购买的时候就购买不了了!!!请哪位高手指点下 谢谢!!!!
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;/// <summary>
/// cookie操作购物车的类 确实订单时连接数据库太频繁需要进行优化
/// </summary>
public class ShoppingManage
{
public ShoppingManage()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
// public static HttpCookie hc = null;
public static String CookieName = "SHOPPING_INFO"; /// <summary>
/// 添加商品进购物车
/// </summary>
/// <param name="productId"></param>
/// <param name="num"></param>
/// <returns></returns>
public static bool AddProduct(int productId,int num)
{
HttpCookie hc = null;
String oldCookieValue;
String NewValue;
hc = HttpContext.Current.Request.Cookies[CookieName];
if (hc == null) //如果Cookie不存在 则直接新建Cookie 保存商品id和数量;
{
hc = new HttpCookie(CookieName);
hc.Expires = DateTime.Now.AddDays(7);
hc.Value = productId.ToString() + "|" + num.ToString();
}
else //假设Cookie存在 则处理
{
oldCookieValue = hc.Value;
NewValue=AddCookieValue(oldCookieValue,productId,num);
hc.Value = NewValue; }
HttpContext.Current.Response.AppendCookie(hc); //Cookie写入Response
return true; //结束
}
/// <summary>
/// 已存在Cookie则追加商品
/// </summary>
/// <param name="Value"></param>
/// <param name="NewProductId"></param>
/// <param name="Num"></param>
private static string AddCookieValue(string Value, int NewProductId, int Num)
{
String NewValue="";
bool IsAdd = false;
string[] productList = Value.Split(',');
for (int i = 0; i < productList.Length; i++)
{
string[] productInfo = productList[i].Split('|');
if (productInfo[0] == NewProductId.ToString())
{
IsAdd = true;
NewValue += productInfo[0] + "|"+((int.Parse(productInfo[1])) + Num).ToString()+",";
}
else
{
NewValue += productInfo[0] + "|" + productInfo[1] + ",";
} }
if (IsAdd)
{ NewValue = NewValue.Substring(0, NewValue.Length - 1);
}
else
{
NewValue += NewProductId.ToString() + "|" + Num.ToString();
} return NewValue;
} /// <summary>
/// 获取购物车信息
/// </summary>
/// <returns></returns>
public static string GetShoppingInfo()
{
HttpCookie hc = null;
String oldCookieValue;
hc = HttpContext.Current.Request.Cookies[CookieName];
if (hc == null) //如果Cookie不存在 则直接新建Cookie 保存商品id和数量;
{
return null;
}
else
{
return hc.Value;
}
} }