购物车问题,写入cookie初始读不出来 本帖最后由 lengcj 于 2010-07-22 10:46:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 商品购买页面代码部分aspx.sc protected void btnSureDingzhi_Click(object sender, EventArgs e) { // //传递的参数是订制的id,参数列表,预览图片的地址,订制数量,订制的总价,使用cookie保存值 string userID = "0"; DingzhiOrderModel model = new DingzhiOrderModel(); model.Userid = 0; if (Request.Cookies["bw_user"] != null) { model.Userid = Convert.ToInt32(Request.Cookies["bw_user"]["user_id"].ToString()); userID = Request.Cookies["bw_user"]["user_id"].ToString(); } if (Request.QueryString["id"] != null) { this.ViewState["proid"] = Request.QueryString["id"]; } DingzhiOrderManager ordermanager = new DingzhiOrderManager(); string subProNO = string.Empty; int subNum = 0; //int subSize = int.Parse(ddlproSize.SelectedValue); Maticsoft.Model.dt_dingzhi pro = new Maticsoft.Model.dt_dingzhi(); Maticsoft.BLL.dt_dingzhi bll = new Maticsoft.BLL.dt_dingzhi(); pro.id = int.Parse(this.ViewState["proid"].ToString()); pro = bll.GetModel(pro.id); subProNO = pro.id.ToString(); string SLbox = slbox.Text; this.ViewState["proid"] = pro.id; this.ViewState["product_price2"] = pro.price; //当商品设置为促销商品,且在促销期内,促销限量 不为0时 显示促销 string proid = string.Empty; bool isAdd = false; // string lbpri = Convert.ToInt32(this.lblprice.Text); if (this.hidprice.Value != "0.0000") { if (Request.Cookies["Order1"] != null && Request.Cookies["Order1"].ToString() != "") { string cookiesValue = Request.Cookies["Order1"].Value.ToString(); //解码 cookiesValue = HttpUtility.UrlDecode(cookiesValue); string[] proRecord = cookiesValue.Split('|'); for (int i = 0; i < proRecord.Length; i++) { string[] proArr = proRecord[i].Split(','); if (proArr.Length == 5) { proid = proArr[0].ToString(); if (subProNO == proid) { isAdd = true; break; } } } if (isAdd == true) { Alert.location("../order/Send.aspx?typeUrl=2"); } else { setCook(subProNO, SLbox, "1", this.ViewState["product_price2"].ToString(), userID, "Order1"); Alert.location("../order/Send.aspx?typeUrl=2"); } } else { setCook(subProNO, SLbox, "1", this.ViewState["product_price2"].ToString(), userID, "Order1"); Alert.location("../order/Send.aspx?typeUrl=2"); } } else { Alert.alert(this.Page, "暂时不能购买!"); } } void setCook(string subProNO, string num, string isx, string proprice, string userID, string Actions) { //写入Cookie //string duserID = "0"; //if (Request.Cookies["bw_user"] != null) //{ // duserID = Request.Cookies["bw_user"]["user_id"].ToString(); //} string proRecord = subProNO + "," + num + "," + isx + "," + proprice + "," + userID; //可能有中文,进行预编码 proRecord = HttpUtility.UrlEncode(proRecord); Tool.operateBuyCookie(Actions, proRecord, 100); int jj = 4; }tool.sc里的operateBuyCookie部分 public static bool operateBuyCookie(string cookieName, string cookieValue, int count) { HttpCookie myCookie = new HttpCookie(cookieName); //cookie 有效期 一个月 myCookie.Expires.AddMonths(1); if (HttpContext.Current.Request.Cookies[cookieName] != null && !HttpContext.Current.Request.Cookies[cookieName].Value.Equals("")) { myCookie = HttpContext.Current.Request.Cookies[cookieName]; myCookie.Value = myCookie.Value + "|" + cookieValue; } else { myCookie.Value = cookieValue; } string[] valueArray = myCookie.Value.Split('|'); ///超过指定个数,把前面的部分清除 if (valueArray.Length > count) { myCookie.Value = ""; for (int i = valueArray.Length - count; i < valueArray.Length; i++) { if (i == valueArray.Length - count) { myCookie.Value += valueArray[i]; } else { myCookie.Value = myCookie.Value + "|" + valueArray[i]; } } } HttpContext.Current.Response.Cookies.Add(myCookie); return true; } 购物车页面aspx部分 <table id="gouwuche03" cellspacing="0" cellpadding="0"> <tr> <td style="height: 40px;"> <img src="../pics/gouwuche01.jpg" alt="" style="margin: 8px 0 0 0; border: solid 0px #dddddd; width: 740px;" /> </td> </tr> <tr> <th style="height: 40px; background-color: #eeeeee; height: 30px; font-size: 14px;"> 您的购物车<span style="color: #ff0000;"> 如果您的商品未加入到购物车请您退出登录后再在左列登录一次即可。</span><asp:Label ID="Label1" runat="server" Text="" ForeColor="#eeeeee" /><asp:Label ID="Label2" runat="server" Text="" Font-Bold="false" ForeColor="#eeeeee" /> </th> </tr> <tr> <td> <table id="gouwuche05" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1"> <tr> <th style="width: 10%; height: 30px;"> </th> <th style="width: 25%"> 产品名称</th> <th style="width: 10%"> 类型</th> <th style="width: 10%"> 单价</th> <th style="width: 10%"> 数量</th> <th style="width: 15%"> 总价</th> <th style="width: 5%"> 操作</th> </tr> </table> <asp:DataList ID="dlProList" runat="server" Width="100%" OnItemCommand="dlProList_ItemCommand" OnItemDataBound="dlProList_ItemDataBound"> <ItemTemplate> <table id="gouwuche06" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1" width="100%"> <tr> <td style="width: 10%;"> <img height="100" src='<%# Eval("img")%>' alt="" style="border: solid 1px #dddddd;" /> </td> <td style="width: 25%;"> <asp:Label runat="server" ID="lbproNamelb" Text='<%# Eval("proName")%>' ForeColor="Red" /> </td> <td style="width: 10%;"> <%# Eval("proSize")%> </td> <td style="width: 10%;"> ¥<span style="color: red;"><%# Eval("proItPrice")%></span><%# (Eval("isCx").ToString() != "3") ? "元" : "积分"%> </td> <td style="width: 10%; text-align: center;"> <asp:TextBox ID="txtproNum" runat="server" MaxLength="8" Text='<%# Eval("proNum") %>' Width="30px"></asp:TextBox><br /> <asp:LinkButton ID="lbUpdata" runat="server" CommandArgument='<%# Eval("index")%>' CommandName="updata" ValidationGroup="group1" OnClick="lbUpdata_Click" Font-Underline="true">更新</asp:LinkButton><br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtproNum" ErrorMessage="*" ValidationGroup="group1"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtproNum" ErrorMessage="数字" ValidationExpression="[0-9]{1,5}" ValidationGroup="group1"></asp:RegularExpressionValidator> <asp:HiddenField ID="hfproNo" runat="server" Value='<%#Eval("proNum") %>' /> <asp:HiddenField ID="hfproId" runat="server" Value='<%#Eval("proId")%>' /> <asp:HiddenField ID="hfCatefist" runat="server" Value='<%#Eval("proType")+"|"+Eval("proCate") %>' /> <asp:HiddenField ID="hfType" runat="server" Value='<%#Eval("proSize") %>' /> </td> <td style="width: 15%;"> ¥<span style="color: red;"><%# Eval("score")%></span><%# (Eval("ProNo").ToString() != "3") ? "元" : "积分"%> </td> <td style="width: 5%;"> <asp:LinkButton ID="lbDelete" runat="server" CommandArgument='<%# Eval("index")%>' CommandName="delete">删除</asp:LinkButton> </td> </tr> </table> </ItemTemplate> </asp:DataList> </td> </tr> <tr> <td> <table id="Table2" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1" style="width: 100%;"> <tr> <td style="width: 55%; height: 30px;"> <span style="color: #ff0000;">欢迎光临中国酒水定制网<br /><b>注意:</b>如果您的商品没有添加到购物车请您退出登录后再在左列登录一次即可。</span> </td> <td style="width: 10%; text-align: center;"> <b>金额合计</b>:</td> <td style="width: 15%; text-align: center;"> ¥<asp:Label ID="labprice" runat="server" OnPreRender="labprice_PreRender" ForeColor="Red"></asp:Label>元 </td> <td style="width: 5%"> </td> </tr> </table> <table id="Table1" cellspacing="0" cellpadding="0" width="100%"> <tr> <td> </td> <td> </td> </tr> </table> </td> </tr> <tr> <td> <table id="gouwuche09" cellspacing="0" cellpadding="0" width="100%" style="margin-top: 10px;"> <tr> <td style="height: 26px; width: 86px; background: url(../images/view_10.jpg) no-repeat; text-align: center;"> <asp:LinkButton ID="lbRetrnShop" runat="server" OnClick="lbRetrnShop_Click" ForeColor="white">继续购物</asp:LinkButton> </td> <td style=""> </td> <td style="width: 86px; background: url(../images/view_10.jpg) no-repeat; text-align: center;"> <a href="#" class="bt"></a> <asp:LinkButton ID="lbDelectpro" runat="server" OnClick="lbDelectpro_Click" ForeColor="white">清空购物车</asp:LinkButton> </td> <td style=""> </td> <td style="width: 100px; background: url(../images/view_18.jpg) no-repeat; text-align: center;"> <asp:LinkButton ID="lbNext" runat="server" ValidationGroup="group1" ForeColor="white" OnClick="lbNext_Click">提交订单</asp:LinkButton> </td> </tr> </table> <table width="80%" cellpadding="0" cellspacing="0" id="gouwuche16" style="margin: 10px 0 10px 60px;"> <tr> <td> </td> </tr> <tr> <td> <div style="text-align: left; color: #ff0000;"> <img src="../images/den.gif" width="17" height="22" alt="" /><b>提示</b>: <br /> 1.如果您的是商品未加入到购物车请您清除IE缓存后或者退出登录后再刷新购物车页面; <br /> 2.修改数量请在数字列文本框填入你要修改的数字后在再点<b style="text-decoration:uderline;">更新</b>; <br /> 3.继续挑选其他商品,请按“继续购物”按钮,购物车窗口会关闭,但选中的产品仍会保留在购物车中; <br /> 4.确认购买目前购物车中全部商品,请按“提交定制申请”按钮,填写送货信息。 <br /> </div> </td> </tr> </table> </td> </tr> </table> 购物车页面aspx.sc部分using System;using System.Data;using System.Configuration;using System.Collections;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 Common;public partial class order_Send : System.Web.UI.Page{ private float price; public float Price { get { return price; } set { this.price = value; } } private float score; public float Score { get { return score; } set { this.score = value; } } private int actions; public int Actions { get { return actions; } set { this.actions = value; } } public int index; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["typeUrl"] != null) { string id = Request.QueryString["typeUrl"].ToString(); txtUrl.Value = id; if (Request.Cookies["bw_user"] != null) { string userID = Request.Cookies["bw_user"]["user_id"].ToString(); Label1.Text = userID; } getCarts(); getDlCustom(); } } } /// <summary> /// 继续购物 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbRetrnShop_Click(object sender, EventArgs e) { if (txtUrl.Value != "") { if (txtUrl.Value == "10") { Alert.location("../ProductListzt.aspx?type=9"); } else { Alert.location("../feedback/dingzhi.aspx"); } } else { Alert.location("../ProductListzt.aspx?type=9"); } } /// <summary> /// 清空购物车 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbDelectpro_Click(object sender, EventArgs e) { Tool.deleteCookie("Order1"); this.dlProList.DataSource = ""; this.dlProList.DataBind(); } /// <summary> /// 保存总价 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void labprice_PreRender(object sender, EventArgs e) { this.labprice.Text = price.ToString("0.00"); HttpCookie myCookie = new HttpCookie("totalMoney"); myCookie.Value = price.ToString(); myCookie.Expires.AddMonths(1); HttpContext.Current.Response.Cookies.Add(myCookie); } protected void lbNext_Click(object sender, EventArgs e) { if (Request.Cookies["Order1"] != null && !Request.Cookies["Order1"].Value.Equals("")) { Response.Redirect("Default.aspx"); } else { Jscript.JsAlert("请先购买商品!", this.Page); } //} } protected void lbUpdata_Click(object sender, EventArgs e) { } /// <summary> /// 获取购物车的所有商品 /// </summary> protected void getCarts() { #region //string userID = "0"; actions = 0; float amountPrice = 0; int amountScore = 0; if (Request.Cookies["Order1"] != null && Request.Cookies["Order1"].ToString() != "") { string cookiesValue = Request.Cookies["Order1"].Value.ToString(); //解码 cookiesValue = HttpUtility.UrlDecode(cookiesValue); Label2.Text = cookiesValue; string[] proRecord = cookiesValue.Split('|'); DataTable dt = new DataTable(); dt.Columns.Add("userId"); dt.Columns.Add("proId"); dt.Columns.Add("proName"); dt.Columns.Add("ProNo"); dt.Columns.Add("proSize"); dt.Columns.Add("proNum"); dt.Columns.Add("isCx"); dt.Columns.Add("proItPrice"); dt.Columns.Add("product_dh"); dt.Columns.Add("proColor"); dt.Columns.Add("score"); dt.Columns.Add("proAmount"); dt.Columns.Add("img"); dt.Columns.Add("colorCate"); dt.Columns.Add("index"); dt.Columns.Add("proType"); dt.Columns.Add("proCate"); for (int i = 0; i < proRecord.Length; i++) { string[] proArr = proRecord[i].Split(','); if (proArr.Length == 5) { //Label2.Text = " " + proArr[0] + "," + proArr[1] + "," + proArr[2] + "," + proArr[3] + "," + proArr[4]; if (proArr[2].ToString() == "1") { DataRow dr = dt.NewRow(); Maticsoft.Model.dt_dingzhi progift = new Maticsoft.Model.dt_dingzhi(); Maticsoft.BLL.dt_dingzhi bll = new Maticsoft.BLL.dt_dingzhi(); progift.id = int.Parse(proArr[0].ToString()); progift = bll.GetModel(progift.id); dr["proName"] = progift.name; dr["proId"] = proArr[0].ToString(); dr["ProNo"] = proArr[2].ToString(); dr["proNum"] = proArr[1].ToString(); dr["isCx"] = proArr[2].ToString(); dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString("0.00"); dr["proSize"] = "定制酒水"; dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString()); dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00"); amountPrice += float.Parse(dr["proAmount"].ToString()); dr["img"] = "../" + progift.image; dr["proType"] = 1; dr["proCate"] = 1; dr["colorCate"] = 1; dr["index"] = i; dr["userId"] = "0"; dt.Rows.Add(dr); } else if (proArr[2].ToString() == "3") { DataRow dr = dt.NewRow(); Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product(); Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product(); progift.product_id = int.Parse(proArr[0].ToString()); progift = bll.GetModel(progift.product_id); dr["proName"] = progift.product_name; dr["proId"] = proArr[0].ToString(); dr["ProNo"] = proArr[2].ToString(); dr["proNum"] = proArr[1].ToString(); dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString(); dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString(); dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString(); dr["proSize"] = "积分兑换品"; dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString()); dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00"); amountPrice += 0; // amountScore += int.Parse(dr["score"].ToString()); dr["img"] = "../" + progift.product_pic; dr["proType"] = 1; dr["proCate"] = 1; dr["colorCate"] = 1; dr["userId"] = "0"; dr["index"] = i; dt.Rows.Add(dr); } else if (proArr[2].ToString() == "2") { DataRow dr = dt.NewRow(); Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product(); Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product(); progift.product_id = int.Parse(proArr[0].ToString()); progift = bll.GetModel(progift.product_id); dr["proName"] = progift.product_name; dr["proId"] = proArr[0].ToString(); dr["ProNo"] = proArr[2].ToString(); dr["proNum"] = proArr[1].ToString(); dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString(); dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString(); dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString(); dr["proSize"] = "非定制酒水"; dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString()); dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00"); amountPrice += float.Parse(dr["proAmount"].ToString()); // amountScore += int.Parse(dr["score"].ToString()); dr["img"] = "../" + progift.product_pic; dr["proType"] = 1; dr["proCate"] = 1; dr["colorCate"] = 1; dr["userId"] = "0"; dr["index"] = i; dt.Rows.Add(dr); } else if (proArr[2].ToString() == "4") { DataRow dr = dt.NewRow(); Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product(); Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product(); progift.product_id = int.Parse(proArr[0].ToString()); progift = bll.GetModel(progift.product_id); dr["proName"] = progift.product_name; dr["proId"] = proArr[0].ToString(); dr["ProNo"] = proArr[2].ToString(); dr["proNum"] = proArr[1].ToString(); dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString(); dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString(); dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString(); dr["proSize"] = "包装商品"; dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString()); dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00"); amountPrice += float.Parse(dr["proAmount"].ToString()); // amountScore += int.Parse(dr["score"].ToString()); dr["img"] = "../" + progift.product_pic; dr["proType"] = 1; dr["proCate"] = 1; dr["colorCate"] = 1; dr["userId"] = "0"; dr["index"] = i; dt.Rows.Add(dr); } } HttpCookie myCookie = new HttpCookie("totalMoney"); myCookie.Value = amountPrice.ToString(); myCookie.Expires.AddMonths(1); HttpContext.Current.Response.Cookies.Add(myCookie); this.dlProList.DataSource = dt; this.dlProList.DataBind(); this.price += float.Parse(amountPrice.ToString("0.00")); this.score += int.Parse(amountScore.ToString()); } } #endregion } 现在就是要解决不刷新就正常显示购物车啊,需要刷新不正常啊网站地址购物车http://ballwest.com/order/Send.aspx?typeUrl=2 问题在这段 if (Request.Cookies["Order1"] != null && Request.Cookies["Order1"].ToString() != "") { string cookiesValue = Request.Cookies["Order1"].Value.ToString(); //解码 cookiesValue = HttpUtility.UrlDecode(cookiesValue);但不知道原因 不是嫌分太少了....是你cookie读不出值来,那你就单步运行,好好看看,写入是否正常,那么就检查哪里的问题。 有操作过路由的么 Web服务上传文件的问题 怎么用C#删除EXCEL的首行首列,并对每个sheet重新命名? 请问html控键和服务器控键有什么不一样? 求一日文输入法安装工具(别砸俺,俺下了三个都用不了,只能到这里来求了) 怎么对ZIP压缩包进行增删读操作呢? C#新手,具体先看什么最容易入门啊? 介绍几本学习.net的经典书籍!! C#的小问题请教您!--------关于类型转换 C#程序运行时报错 c# where 的疑惑 .NET 泛型的问题
{
// //传递的参数是订制的id,参数列表,预览图片的地址,订制数量,订制的总价,使用cookie保存值
string userID = "0";
DingzhiOrderModel model = new DingzhiOrderModel();
model.Userid = 0;
if (Request.Cookies["bw_user"] != null)
{
model.Userid = Convert.ToInt32(Request.Cookies["bw_user"]["user_id"].ToString());
userID = Request.Cookies["bw_user"]["user_id"].ToString();
}
if (Request.QueryString["id"] != null)
{
this.ViewState["proid"] = Request.QueryString["id"];
} DingzhiOrderManager ordermanager = new DingzhiOrderManager(); string subProNO = string.Empty;
int subNum = 0;
//int subSize = int.Parse(ddlproSize.SelectedValue);
Maticsoft.Model.dt_dingzhi pro = new Maticsoft.Model.dt_dingzhi();
Maticsoft.BLL.dt_dingzhi bll = new Maticsoft.BLL.dt_dingzhi();
pro.id = int.Parse(this.ViewState["proid"].ToString());
pro = bll.GetModel(pro.id);
subProNO = pro.id.ToString();
string SLbox = slbox.Text;
this.ViewState["proid"] = pro.id;
this.ViewState["product_price2"] = pro.price;
//当商品设置为促销商品,且在促销期内,促销限量 不为0时 显示促销 string proid = string.Empty;
bool isAdd = false;
// string lbpri = Convert.ToInt32(this.lblprice.Text);
if (this.hidprice.Value != "0.0000")
{
if (Request.Cookies["Order1"] != null && Request.Cookies["Order1"].ToString() != "")
{
string cookiesValue = Request.Cookies["Order1"].Value.ToString();
//解码
cookiesValue = HttpUtility.UrlDecode(cookiesValue);
string[] proRecord = cookiesValue.Split('|');
for (int i = 0; i < proRecord.Length; i++)
{
string[] proArr = proRecord[i].Split(',');
if (proArr.Length == 5)
{
proid = proArr[0].ToString();
if (subProNO == proid)
{
isAdd = true;
break;
}
}
}
if (isAdd == true)
{
Alert.location("../order/Send.aspx?typeUrl=2");
}
else
{
setCook(subProNO, SLbox, "1", this.ViewState["product_price2"].ToString(), userID, "Order1");
Alert.location("../order/Send.aspx?typeUrl=2");
} }
else
{
setCook(subProNO, SLbox, "1", this.ViewState["product_price2"].ToString(), userID, "Order1");
Alert.location("../order/Send.aspx?typeUrl=2");
}
}
else
{
Alert.alert(this.Page, "暂时不能购买!");
}
} void setCook(string subProNO, string num, string isx, string proprice, string userID, string Actions)
{
//写入Cookie
//string duserID = "0";
//if (Request.Cookies["bw_user"] != null)
//{
// duserID = Request.Cookies["bw_user"]["user_id"].ToString();
//}
string proRecord = subProNO + "," + num + "," + isx + "," + proprice + "," + userID;
//可能有中文,进行预编码
proRecord = HttpUtility.UrlEncode(proRecord);
Tool.operateBuyCookie(Actions, proRecord, 100);
int jj = 4;
}tool.sc里的operateBuyCookie部分 public static bool operateBuyCookie(string cookieName, string cookieValue, int count)
{
HttpCookie myCookie = new HttpCookie(cookieName);
//cookie 有效期 一个月
myCookie.Expires.AddMonths(1);
if (HttpContext.Current.Request.Cookies[cookieName] != null && !HttpContext.Current.Request.Cookies[cookieName].Value.Equals(""))
{
myCookie = HttpContext.Current.Request.Cookies[cookieName];
myCookie.Value = myCookie.Value + "|" + cookieValue;
}
else
{
myCookie.Value = cookieValue;
}
string[] valueArray = myCookie.Value.Split('|');
///超过指定个数,把前面的部分清除
if (valueArray.Length > count)
{
myCookie.Value = "";
for (int i = valueArray.Length - count; i < valueArray.Length; i++)
{
if (i == valueArray.Length - count)
{
myCookie.Value += valueArray[i];
}
else
{
myCookie.Value = myCookie.Value + "|" + valueArray[i];
}
}
}
HttpContext.Current.Response.Cookies.Add(myCookie);
return true;
}
<tr>
<td style="height: 40px;">
<img src="../pics/gouwuche01.jpg" alt="" style="margin: 8px 0 0 0; border: solid 0px #dddddd; width: 740px;" />
</td>
</tr>
<tr>
<th style="height: 40px; background-color: #eeeeee; height: 30px; font-size: 14px;">
您的购物车<span style="color: #ff0000;"> 如果您的商品未加入到购物车请您退出登录后再在左列登录一次即可。</span><asp:Label ID="Label1" runat="server" Text="" ForeColor="#eeeeee" /><asp:Label ID="Label2" runat="server" Text="" Font-Bold="false" ForeColor="#eeeeee" />
</th>
</tr>
<tr>
<td>
<table id="gouwuche05" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1">
<tr>
<th style="width: 10%; height: 30px;">
</th>
<th style="width: 25%">
产品名称</th>
<th style="width: 10%">
类型</th>
<th style="width: 10%">
单价</th>
<th style="width: 10%">
数量</th>
<th style="width: 15%">
总价</th>
<th style="width: 5%">
操作</th>
</tr>
</table>
<asp:DataList ID="dlProList" runat="server" Width="100%" OnItemCommand="dlProList_ItemCommand" OnItemDataBound="dlProList_ItemDataBound">
<ItemTemplate>
<table id="gouwuche06" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1" width="100%">
<tr>
<td style="width: 10%;">
<img height="100" src='<%# Eval("img")%>' alt="" style="border: solid 1px #dddddd;" />
</td>
<td style="width: 25%;">
<asp:Label runat="server" ID="lbproNamelb" Text='<%# Eval("proName")%>' ForeColor="Red" />
</td>
<td style="width: 10%;">
<%# Eval("proSize")%>
</td>
<td style="width: 10%;">
¥<span style="color: red;"><%# Eval("proItPrice")%></span><%# (Eval("isCx").ToString() != "3") ? "元" : "积分"%>
</td>
<td style="width: 10%; text-align: center;">
<asp:TextBox ID="txtproNum" runat="server" MaxLength="8" Text='<%# Eval("proNum") %>' Width="30px"></asp:TextBox><br />
<asp:LinkButton ID="lbUpdata" runat="server" CommandArgument='<%# Eval("index")%>' CommandName="updata" ValidationGroup="group1" OnClick="lbUpdata_Click" Font-Underline="true">更新</asp:LinkButton><br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtproNum" ErrorMessage="*" ValidationGroup="group1"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtproNum" ErrorMessage="数字" ValidationExpression="[0-9]{1,5}" ValidationGroup="group1"></asp:RegularExpressionValidator>
<asp:HiddenField ID="hfproNo" runat="server" Value='<%#Eval("proNum") %>' />
<asp:HiddenField ID="hfproId" runat="server" Value='<%#Eval("proId")%>' />
<asp:HiddenField ID="hfCatefist" runat="server" Value='<%#Eval("proType")+"|"+Eval("proCate") %>' />
<asp:HiddenField ID="hfType" runat="server" Value='<%#Eval("proSize") %>' />
</td>
<td style="width: 15%;">
¥<span style="color: red;"><%# Eval("score")%></span><%# (Eval("ProNo").ToString() != "3") ? "元" : "积分"%>
</td>
<td style="width: 5%;">
<asp:LinkButton ID="lbDelete" runat="server" CommandArgument='<%# Eval("index")%>' CommandName="delete">删除</asp:LinkButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
<tr>
<td>
<table id="Table2" cellspacing="0" cellpadding="0" bordercolor="#C0DAF1" border="1" style="width: 100%;">
<tr>
<td style="width: 55%; height: 30px;">
<span style="color: #ff0000;">欢迎光临中国酒水定制网<br /><b>注意:</b>如果您的商品没有添加到购物车请您退出登录后再在左列登录一次即可。</span>
</td>
<td style="width: 10%; text-align: center;">
<b>金额合计</b>:</td>
<td style="width: 15%; text-align: center;">
¥<asp:Label ID="labprice" runat="server" OnPreRender="labprice_PreRender" ForeColor="Red"></asp:Label>元
</td>
<td style="width: 5%">
</td>
</tr>
</table>
<table id="Table1" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="gouwuche09" cellspacing="0" cellpadding="0" width="100%" style="margin-top: 10px;">
<tr>
<td style="height: 26px; width: 86px; background: url(../images/view_10.jpg) no-repeat; text-align: center;">
<asp:LinkButton ID="lbRetrnShop" runat="server" OnClick="lbRetrnShop_Click" ForeColor="white">继续购物</asp:LinkButton>
</td>
<td style="">
</td>
<td style="width: 86px; background: url(../images/view_10.jpg) no-repeat; text-align: center;">
<a href="#" class="bt"></a> <asp:LinkButton ID="lbDelectpro" runat="server" OnClick="lbDelectpro_Click" ForeColor="white">清空购物车</asp:LinkButton>
</td>
<td style="">
</td>
<td style="width: 100px; background: url(../images/view_18.jpg) no-repeat; text-align: center;">
<asp:LinkButton ID="lbNext" runat="server" ValidationGroup="group1" ForeColor="white" OnClick="lbNext_Click">提交订单</asp:LinkButton>
</td>
</tr>
</table>
<table width="80%" cellpadding="0" cellspacing="0" id="gouwuche16" style="margin: 10px 0 10px 60px;">
<tr>
<td>
</td>
</tr>
<tr>
<td>
<div style="text-align: left; color: #ff0000;">
<img src="../images/den.gif" width="17" height="22" alt="" /><b>提示</b>:
<br />
1.如果您的是商品未加入到购物车请您清除IE缓存后或者退出登录后再刷新购物车页面;
<br />
2.修改数量请在数字列文本框填入你要修改的数字后在再点<b style="text-decoration:uderline;">更新</b>;
<br />
3.继续挑选其他商品,请按“继续购物”按钮,购物车窗口会关闭,但选中的产品仍会保留在购物车中;
<br />
4.确认购买目前购物车中全部商品,请按“提交定制申请”按钮,填写送货信息。
<br />
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
using System.Data;
using System.Configuration;
using System.Collections;
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 Common;public partial class order_Send : System.Web.UI.Page
{
private float price;
public float Price
{
get { return price; }
set { this.price = value; }
}
private float score;
public float Score
{
get { return score; }
set { this.score = value; }
}
private int actions;
public int Actions
{
get { return actions; }
set { this.actions = value; }
} public int index; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["typeUrl"] != null)
{
string id = Request.QueryString["typeUrl"].ToString();
txtUrl.Value = id;
if (Request.Cookies["bw_user"] != null)
{
string userID = Request.Cookies["bw_user"]["user_id"].ToString();
Label1.Text = userID;
}
getCarts();
getDlCustom();
} } }
/// <summary>
/// 继续购物
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbRetrnShop_Click(object sender, EventArgs e)
{
if (txtUrl.Value != "")
{
if (txtUrl.Value == "10")
{
Alert.location("../ProductListzt.aspx?type=9");
}
else
{
Alert.location("../feedback/dingzhi.aspx");
}
}
else
{
Alert.location("../ProductListzt.aspx?type=9");
} }
/// <summary>
/// 清空购物车
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbDelectpro_Click(object sender, EventArgs e)
{
Tool.deleteCookie("Order1");
this.dlProList.DataSource = "";
this.dlProList.DataBind();
} /// <summary>
/// 保存总价
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void labprice_PreRender(object sender, EventArgs e)
{
this.labprice.Text = price.ToString("0.00");
HttpCookie myCookie = new HttpCookie("totalMoney");
myCookie.Value = price.ToString();
myCookie.Expires.AddMonths(1);
HttpContext.Current.Response.Cookies.Add(myCookie);
}
protected void lbNext_Click(object sender, EventArgs e)
{
if (Request.Cookies["Order1"] != null && !Request.Cookies["Order1"].Value.Equals(""))
{
Response.Redirect("Default.aspx");
}
else
{
Jscript.JsAlert("请先购买商品!", this.Page);
}
//}
} protected void lbUpdata_Click(object sender, EventArgs e)
{ } /// <summary>
/// 获取购物车的所有商品
/// </summary>
protected void getCarts()
{
#region
//string userID = "0";
actions = 0;
float amountPrice = 0;
int amountScore = 0;
if (Request.Cookies["Order1"] != null && Request.Cookies["Order1"].ToString() != "")
{
string cookiesValue = Request.Cookies["Order1"].Value.ToString();
//解码
cookiesValue = HttpUtility.UrlDecode(cookiesValue);
Label2.Text = cookiesValue;
string[] proRecord = cookiesValue.Split('|');
DataTable dt = new DataTable();
dt.Columns.Add("userId");
dt.Columns.Add("proId");
dt.Columns.Add("proName");
dt.Columns.Add("ProNo");
dt.Columns.Add("proSize");
dt.Columns.Add("proNum");
dt.Columns.Add("isCx");
dt.Columns.Add("proItPrice");
dt.Columns.Add("product_dh");
dt.Columns.Add("proColor");
dt.Columns.Add("score");
dt.Columns.Add("proAmount");
dt.Columns.Add("img");
dt.Columns.Add("colorCate");
dt.Columns.Add("index");
dt.Columns.Add("proType");
dt.Columns.Add("proCate");
for (int i = 0; i < proRecord.Length; i++)
{
string[] proArr = proRecord[i].Split(',');
if (proArr.Length == 5)
{
//Label2.Text = " " + proArr[0] + "," + proArr[1] + "," + proArr[2] + "," + proArr[3] + "," + proArr[4];
if (proArr[2].ToString() == "1")
{
DataRow dr = dt.NewRow();
Maticsoft.Model.dt_dingzhi progift = new Maticsoft.Model.dt_dingzhi();
Maticsoft.BLL.dt_dingzhi bll = new Maticsoft.BLL.dt_dingzhi();
progift.id = int.Parse(proArr[0].ToString());
progift = bll.GetModel(progift.id);
dr["proName"] = progift.name;
dr["proId"] = proArr[0].ToString();
dr["ProNo"] = proArr[2].ToString();
dr["proNum"] = proArr[1].ToString();
dr["isCx"] = proArr[2].ToString();
dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString("0.00");
dr["proSize"] = "定制酒水";
dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString());
dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00");
amountPrice += float.Parse(dr["proAmount"].ToString());
dr["img"] = "../" + progift.image;
dr["proType"] = 1;
dr["proCate"] = 1;
dr["colorCate"] = 1;
dr["index"] = i;
dr["userId"] = "0";
dt.Rows.Add(dr);
}
else if (proArr[2].ToString() == "3")
{
DataRow dr = dt.NewRow();
Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product();
Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product();
progift.product_id = int.Parse(proArr[0].ToString());
progift = bll.GetModel(progift.product_id);
dr["proName"] = progift.product_name;
dr["proId"] = proArr[0].ToString();
dr["ProNo"] = proArr[2].ToString();
dr["proNum"] = proArr[1].ToString();
dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString();
dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString();
dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString();
dr["proSize"] = "积分兑换品";
dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString());
dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00");
amountPrice += 0;
// amountScore += int.Parse(dr["score"].ToString());
dr["img"] = "../" + progift.product_pic;
dr["proType"] = 1;
dr["proCate"] = 1;
dr["colorCate"] = 1;
dr["userId"] = "0";
dr["index"] = i;
dt.Rows.Add(dr);
}
else if (proArr[2].ToString() == "2")
{
DataRow dr = dt.NewRow();
Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product();
Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product();
progift.product_id = int.Parse(proArr[0].ToString());
progift = bll.GetModel(progift.product_id);
dr["proName"] = progift.product_name;
dr["proId"] = proArr[0].ToString();
dr["ProNo"] = proArr[2].ToString();
dr["proNum"] = proArr[1].ToString();
dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString();
dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString();
dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString();
dr["proSize"] = "非定制酒水";
dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString());
dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00");
amountPrice += float.Parse(dr["proAmount"].ToString());
// amountScore += int.Parse(dr["score"].ToString());
dr["img"] = "../" + progift.product_pic;
dr["proType"] = 1;
dr["proCate"] = 1;
dr["colorCate"] = 1;
dr["userId"] = "0";
dr["index"] = i;
dt.Rows.Add(dr);
}
else if (proArr[2].ToString() == "4")
{
DataRow dr = dt.NewRow();
Maticsoft.Model.dt_product progift = new Maticsoft.Model.dt_product();
Maticsoft.BLL.dt_product bll = new Maticsoft.BLL.dt_product();
progift.product_id = int.Parse(proArr[0].ToString());
progift = bll.GetModel(progift.product_id);
dr["proName"] = progift.product_name;
dr["proId"] = proArr[0].ToString();
dr["ProNo"] = proArr[2].ToString();
dr["proNum"] = proArr[1].ToString();
dr["isCx"] = proArr[2].ToString(); //dr["youhui"] = proArr[4].ToString();
dr["proItPrice"] = float.Parse(proArr[3].ToString()).ToString();
dr["product_dh"] = float.Parse(proArr[3].ToString()).ToString();
dr["proSize"] = "包装商品";
dr["score"] = float.Parse(dr["proItPrice"].ToString()) * int.Parse(dr["proNum"].ToString());
dr["proAmount"] = ((int.Parse(proArr[1].ToString())) * (float.Parse(proArr[3].ToString()))).ToString("0.00");
amountPrice += float.Parse(dr["proAmount"].ToString());
// amountScore += int.Parse(dr["score"].ToString());
dr["img"] = "../" + progift.product_pic;
dr["proType"] = 1;
dr["proCate"] = 1;
dr["colorCate"] = 1;
dr["userId"] = "0";
dr["index"] = i;
dt.Rows.Add(dr);
}
}
HttpCookie myCookie = new HttpCookie("totalMoney");
myCookie.Value = amountPrice.ToString();
myCookie.Expires.AddMonths(1);
HttpContext.Current.Response.Cookies.Add(myCookie);
this.dlProList.DataSource = dt;
this.dlProList.DataBind();
this.price += float.Parse(amountPrice.ToString("0.00"));
this.score += int.Parse(amountScore.ToString());
}
} #endregion
}
网站地址购物车http://ballwest.com/order/Send.aspx?typeUrl=2
{
string cookiesValue = Request.Cookies["Order1"].Value.ToString();
//解码
cookiesValue = HttpUtility.UrlDecode(cookiesValue);但不知道原因
是你cookie读不出值来,那你就单步运行,好好看看,写入是否正常,那么就检查哪里的问题。