网站购物车是写入cookie来完成的,在注册用户登陆后购买商品加入购物车时,购物车不能正常显示出来,在用户退出登陆后就购物车中的商品就显示出来了,再进行登陆也能正常显示。正常的是不会区分登陆与否。
页面地址http://ballwest.com/order/Send.aspx?typeUrl=2麻烦各地高手了,这是别人改写的代码,我拿到手就这样,一直研究不透是什么原因。我也没系统的学过c#,仅仅在拿到代码后玩了一年的vs2005。
购买页面代码部分aspx          <form name="frmdingzhi" method="post">
           <table id="pinxiangye001" cellspacing="0" cellpadding="0">
            <tr>
             <td style="width: 355px; text-align: center;">
              <asp:Label ID="Label3" runat="server"></asp:Label></td>
             <td style="width: 380px; text-align: center;" valign="top">
              <table id="pinxiangye002" cellspacing="1" cellpadding="1">
               <tr>
                <td style="font-size: 14px; margin-left: 10px; border-bottom: solid 1px #c6c6c6;">
                 <b>
                  <asp:Label ID="lblname" runat="server" Text="" /></b></td>
               </tr>
               <tr>
                <td style="padding-left: 2px;">
                 订制价&nbsp;&nbsp;:<b><asp:Label ID="lblprice" runat="server" Text="" ForeColor="red" Font-Bold="true" Font-Size="16" /><span style="color: #000000;">/</span><asp:Label ID="lbldanwei" runat="server" Text="" ForeColor="#000000" /></b></td>
               </tr>
               <tr>
                <td style="">
                 <a href="https://taobao.alipay.com/aip/aip_validate_list.htm?trust_id=AIP06043763" target="_blank">
                  <img alt="交易安全" src="../pics/zfbzhifu_01.jpg" /></a></td>
               </tr>
               <tr visible="false" id="yhvs" runat="server">
                <td style="padding-left: 2px;">
                 优惠说明:<asp:Label ID="Label18" runat="server" Text="" /></td>
               </tr>
               <tr>
                <td style="vertical-align: bottom; padding-left: 0px; border-top: solid 1px #c6c6c6;">
                 我要定:<asp:Textbox ID="slbox" runat="server" Text="1" Width="30px" />瓶
                 <asp:Button ID="Button1" runat="server" Text="加入购物车" CssClass="input_c" OnClick="btnSureDingzhi_Click" OnClientClick="return checkprice();" Height="27"></asp:Button>
                 &nbsp;&nbsp;
                 <input id="Button2" type="button" value="返 回" onclick="history.go(-1)" class="input_cc" style="height: 27px;" />
                </td>
               </tr>
               <tr>
                <th style="padding-left: 2px;color:Red ;text-align: left;">
                 <span style="font-size:16px;">注</span>:&nbsp; &nbsp;参阅左图的个人和企业案例,本公司可以按照您的要求设计您所需的任何个性定制酒标。</th>
               </tr>
              </table>
             </td>
            </tr>
           </table>
          </form>

解决方案 »

  1.   

    商品购买页面代码部分aspx.scC# code 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部分C# code    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;
        }
      

  2.   

    购物车页面aspx部分C# code       <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;">
              &nbsp;&nbsp;您的购物车<span style="color: #ff0000;">&nbsp;&nbsp;如果您的商品未加入到购物车请您退出登录后再在左列登录一次即可。</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;">
                 &nbsp;&nbsp;
                </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;">
                 &nbsp;<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%">
                 &nbsp;&nbsp;</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="">
                 &nbsp;&nbsp;
                </td>
                <td style="width: 86px; background: url(../images/view_10.jpg)  no-repeat; text-align: center;">
                 <a href="#" class="bt"></a>&nbsp;<asp:LinkButton ID="lbDelectpro" runat="server" OnClick="lbDelectpro_Click" ForeColor="white">清空购物车</asp:LinkButton>
                </td>
                <td style="">
                 &nbsp;&nbsp;
                </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>
      

  3.   

    购物车页面aspx.sc部分C# codeusing 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
     }
      

  4.   

    在次登陆后能显示出来,证明显示的那一块问题。
    显示页:
            protected void Page_Load(object sender, EventArgs e)
            {
                //首次加载时 执行
                if (!IsPostBack)
                {
                    //显示信息
                    //
                    //代码,绑定显示数据
                }
            }我们在习惯,页加载时绑定了数据。
    有时我们对数据做了修改,但页面不会发生变化。
    因为不管做什么页面都是加载的,Page_Load()方法中的信息。
    Page_Load()方法绑定的信息应该是 只在第一次加载时才有效。
    你改下,应该就可以了!
      

  5.   

    以下是代码精简商品购买页面代码部分aspx<asp:Button ID="Button1" runat="server" Text="加入购物车" CssClass="input_c" OnClick="btnSureDingzhi_Click" OnClientClick="return checkprice();" Height="27"></asp:Button>商品购买页面代码部分aspx.scprotected 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部分[C# code] 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部分  <asp:DataList ID="dlProList" runat="server" Width="100%" OnItemCommand="dlProList_ItemCommand" OnItemDataBound="dlProList_ItemDataBound">
      <ItemTemplate>
    <table id="gouwuche06" ......
    </table>
      </ItemTemplate>
      </asp:DataList>购物车页面aspx.sc部分
    ..............
     /// <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('|');
    .....................
      

  6.   


    改了没用,不是Page_Load()的问题啊
      

  7.   

    else
      {
       Label2.Text ="<span style='color: #ff0000;'>&nbsp;&nbsp;如果您的商品未加入到购物车请您退出登录后再在左列登录一次即可。</span>";
       Label3.Text = "<b>注意:</b>如果您的商品没有添加到购物车请您退出登录后再在左列登录一次即可。";
       //Response.Cookies["bw_user"].Value = null;
      }
    结果报错啊~~~
      

  8.   

    可以退出了,但没解决根本问题,只是暂时应付下哟
       Response.Cookies["bw_user"].Expires = DateTime.Now.AddDays(-1);
      

  9.   

    在注册用户登陆后购买商品加入购物车时,购物车不能正常显示出来,在用户退出登陆后就购物车中的商品就显示出来了,
    看你这句话,估计是用户注册后直接转为登陆状态时,应该没写用户状态的Cookies吧,自己看下那部分
      

  10.   


    登陆页      Response.Cookies["bw_user"]["user_id"] = userid.ToString();
          DataTable dt = userManager.UserGetById(userid);
          Response.Cookies["bw_user"]["user_type"] = dt.Rows[0]["type"].ToString();
          Response.Cookies["bw_user"]["user_name"] = HttpUtility.UrlEncode(dt.Rows[0]["username"].ToString());
          Response.Cookies["bw_user"]["user_truename"] = dt.Rows[0]["truename"].ToString();
          Response.Cookies["bw_user"]["user_dianpu_name"] = dt.Rows[0]["dianpu_name"].ToString();
          Response.Cookies["bw_user"]["user_ep"] = dt.Rows[0]["userep"].ToString();
          Response.Cookies["bw_user"]["user_money"] = dt.Rows[0]["usermoney"].ToString();
          Response.Cookies["bw_user"]["user_rolename"] = dt.Rows[0]["rolename"].ToString();  
      

  11.   

    看似登陸前後的用戶Cookie寫入與讀取存在差異