一个商城的购车相关代码

购物车类

using System;
using System.Web.UI;
using System.Collections; //使用Hashtable类必须引入该命名空间
namespace EWang.BLL
{
    [Serializable]
    //定义商品类,保存商品的各种属性
    public class CarData
    {
        long _pid;
        int _quality;
        decimal _price;
        string _chicun;
        string _bianhao;
        public long P_ID
        {
            set { _pid = value; }
            get { return _pid; }
        }
        public int Quality
        {
            set { _quality = value; }
            get { return _quality; }
        }
        public decimal Price
        {
            set { _price = value; }
            get { return _price; }
        }
        public string ChiCun
        {
            set { _chicun = value; }
            get { return _chicun; }
        }
        public string BianHao
        {
            set { _bianhao = value; }
            get { return _bianhao; }
        }
        public CarData(long pid, int qua, decimal price,string chicun,string bianhao)  //构造方法,初始化商品的各个属性
        {
            _pid = pid;
            _quality = qua;
            _price = price;
            _chicun = chicun;
            _bianhao = bianhao;
        }
    }
   
    [Serializable]
    public class ShoppingCart
    {

        Hashtable Cart_Orders = new Hashtable();

        public ICollection Orders
        {
            get { return Cart_Orders.Values; }

        }
        /// <summary>
        /// 所有商品编号列表
        /// </summary>
        public string OrdersPidList
        {
            get
            {
                int flag = 0;
                System.Text.StringBuilder strprolist = new System.Text.StringBuilder();
                foreach (DictionaryEntry entry in Cart_Orders)
                {
                    CarData order = (CarData)entry.Value;
                    if (flag == 0)
                    {
                        strprolist.Append(order.P_ID);
                        flag = 1;
                    }
                    else
                    {
                        strprolist.Append("|" + order.P_ID);
                    }
                }
                return strprolist.ToString();
            }
        }
        public string OrdersList
        {
            get
            {
                int flag = 0;
                System.Text.StringBuilder strprolist = new System.Text.StringBuilder();
                foreach (DictionaryEntry entry in Cart_Orders)
                {
                     CarData order = (CarData)entry.Value;
                     if (flag == 0)
                     {
                         strprolist.Append(order.P_ID + "," + order.Price + "," + order.Quality + "," + (order.Price * order.Quality)+","+order.ChiCun+","+order.BianHao);
                         flag = 1;
                     }
                     else
                     {
                         strprolist.Append("|" + order.P_ID + "," + order.Price + "," + order.Quality + "," + (order.Price * order.Quality) + "," + order.ChiCun+","+order.BianHao);
                     }
                }
                return strprolist.ToString();
            }
        }
        //public Hashtable Orders
        //{
        //    get { return Cart_Orders; }
        //}
        //计算总数量
        public int TotalQuality
        {
            get
            {
                Int32 total = 0;
                foreach (DictionaryEntry entry in Cart_Orders)
                {
                    CarData order = (CarData)entry.Value;
                    total +=order.Quality;
                }
                return total;
            }
        }
      
        //计算总价格
        public decimal TotalCost
        {
            get
            {
                decimal total = 0;
                foreach (DictionaryEntry entry in Cart_Orders)
                {
                    CarData order = (CarData)entry.Value;
                    total += (order.Price * order.Quality);
                }
                return total;
            }
        }
        //添加物件方法
        public void AddItem(CarData Order)
        {
            CarData order = (CarData)Cart_Orders[Order.P_ID.ToString ()];
            if (order != null)
                order.Quality += Order.Quality;
            else
                Cart_Orders.Add(Order.P_ID.ToString (), Order);
        }
        //删除物件
        public void DeleteItem(long ItemID)
        {
            if (Cart_Orders[ItemID.ToString()] != null)
                Cart_Orders.Remove(ItemID.ToString());              
        }
        //更新购物车数量
        public void UpdateQuality(long ItemID,int quality)
        {
            CarData order = (CarData)Cart_Orders[ItemID.ToString()];
            if (quality > 0)
            {
                order.Quality = quality;
                Cart_Orders[ItemID.ToString()] = order;
            }
        }
        //更新价格
        public void UpdatePrice(long ItemID, decimal price)
        {
            CarData order = (CarData)Cart_Orders[ItemID.ToString()];
            order.Price = price;
            Cart_Orders[ItemID.ToString()] = order;           
        }
        //更新购物车所有商品的价格
        public ShoppingCart UpdateAllPrice(int usertype, ShoppingCart car)
        {
           
            EWang.BLL.Product_Data bll = new Product_Data();
            long pid=0L;
            decimal hyprice=0.0M;
            foreach (DictionaryEntry entry in car.Cart_Orders)
            {
                CarData order = (CarData)entry.Value;
                string strkey = entry.Key.ToString();
                pid = order.P_ID;
                switch (usertype)
                {
                    case 1:
                        hyprice = bll.GetHYPrice(pid);
                        break;
                    case 2:
                        hyprice = bll.GetHYPrice1(pid);
                        break;
                    case 3:
                        hyprice = bll.GetHYPrice2(pid);
                        break;
                }
                order.Price = hyprice;
                car.Cart_Orders[strkey] = order;
            }
            return car;
        }
        /// <summary>
        ///清空购物车
        /// </summary>
        public void ClearAll()
        {
            Cart_Orders.Clear();
        }
    }
}

 

 

前台页面View_ShoppingCart.aspx

<script language="javascript"   type="text/javascript">
    function   trim(str){return   str.replace(/^\s+|\s+$/,'')}
    function checkisempty(obj)
 {  
  if(trim(obj.value)=="")
  {
   obj.value="1";
  }  
 }
</script>

 

<table width="807" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="10"><img src="images/d01_01.jpg" width="10" height="29" /></td>
          <td width="97" background="images/d01_bj.jpg"><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td align="center" valign="middle" class="shoujia">您订购的商品</td>
            </tr>
            <tr>
              <td align="center" valign="middle"><img src="images/sanjiao04.jpg" width="7" height="4" /></td>
            </tr>
          </table></td>
          <td width="4"><img src="images/d01_02.jpg" width="4" height="29" /></td>
          <td width="696" background="images/d01_03.jpg"><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td align="center" class="top5">商品名称</td>
              <td width="80" align="center" class="top5">编号</td>
              <td width="80" align="center" class="top5">尺寸</td>
              <td width="80" align="center" class="top5">单价</td>
              <td width="80" align="center" class="top5">数量</td>
              <td width="80" align="center" class="top5">小计</td>
              <td width="80" align="center" class="top5">删除</td>
            </tr>
          </table></td>
        </tr>
      </table>    
          <form id="form1" runat="server" style="0px auto; padding:0px;">
          <table width="807" border="0" align="center" cellpadding="0" cellspacing="0">
          <asp:Repeater ID="RepeaterCar" runat="server" EnableViewState="True" >
           <ItemTemplate>
          
        <tr>
          <td width="110" height="120" align="center" valign="middle">
          <img src="<%#getPic(DataBinder.Eval( Container.DataItem,"P_ID" ))%>" width="90" height="100" />
          </td>
          <td width="252" align="center" valign="middle" class="sousuo"><%#getProductName(DataBinder.Eval(Container.DataItem, "P_ID"))%></td>
          <td width="91" align="center" valign="middle" class="sousuo"><%#DataBinder.Eval( Container.DataItem,"BianHao" )%></td>
        
          <td width="91" align="center" valign="middle" class="sousuo"><%#DataBinder.Eval( Container.DataItem,"ChiCun" )%></td>
          <td width="85" align="center" valign="middle" class="sousuo"><%#DataBinder.Eval(Container.DataItem, "Price","{0:c}")%></td>
          <td width="86" align="center" valign="middle"><asp:TextBox  EnableViewState="true"  CssClass="inputnormal" ID="TextBox1" runat="server" Text='<%#DataBinder.Eval( Container.DataItem,"Quality" )%>' οnblur="checkisempty(this);"></asp:TextBox></td>
          <td width="87" align="center" valign="middle" class="sousuo"><%#CalTotal(DataBinder.Eval(Container.DataItem, "Price"), DataBinder.Eval(Container.DataItem, "Quality"))%></td>
          <td width="96" align="center" valign="middle" class="sousuo"> <asp:Label ID="LabPID" runat="server" Text='<%#DataBinder.Eval( Container.DataItem,"P_ID" )%>' Visible="false"></asp:Label>
        <a href="View_ShoppingCart.aspx?act=del&pid=<%#DataBinder.Eval( Container.DataItem,"P_ID" )%>" class="top1">删除</a></td>
        </tr>        
    
          </ItemTemplate>   
          <SeparatorTemplate>
           <tr>
          <td height="1" colspan="8" bgcolor="#CCCCCC"></td>
        </tr>
          </SeparatorTemplate>
      </asp:Repeater>
       </table>
      <table width="807" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="440" height="50" align="left" valign="middle"><a href="Default.aspx"><img src="images/d02.jpg" width="114" height="31" border="0" /></a></td>
          <td align="center" valign="middle" class="top9">总计:<asp:Literal ID="LitZJ" runat="server" EnableViewState="false"></asp:Literal></td>
          <td align="right" valign="middle">
              <asp:ImageButton ID="btnClear" runat="server" OnClick="btnClear_Click" style="cursor:hand;" ImageUrl="images/d03.jpg" Height="22px" ImageAlign="AbsMiddle" Width="103px" />
              </td>
          <td align="right" valign="middle">
              <asp:ImageButton ID="BtnSave" OnClick="BtnSave_Click" runat="server" Height="22px" ImageAlign="AbsMiddle"
                  ImageUrl="images/d04.jpg" Width="103px" style="cursor:hand;"/></td>
        </tr>
        <tr>
          <td height="40" colspan="4" align="center" valign="middle"><a href="MakeOrder.aspx"><img src="images/d05.jpg" width="125" height="30" border="0" /></a></td>
        </tr>
      </table>
      </form>

代码文件:View_ShoppingCart.aspx.cs文件

 

 protected void Page_Load(object sender, EventArgs e)
    {

        //if (EWang.BLL.Users.isLogin() == false)
        //{

        //    string message = "window.alert('你还没有登录,请选择后再进行本次操作!');window.location.href='Login.aspx';";
        //    MessageBox.ResponseScript(this, message);
        //    return;
        //}
        //else
        //{

            if (Request.QueryString["act"] == "del")
            {
                delPro();
            }
            else if (Request.QueryString["act"] == "add")
            {
                this.AddItemToCart();
            }
            else
            {
                if (!this.IsPostBack)
                {
                    this.BindShoppingCart();
                }
            }
            this.strtitle = "我的购物车" + "-" + WebBasicInfo.sitename;
            this.strkeywords = WebBasicInfo.keyword;
            this.webSiteDesc = WebBasicInfo.webintro;
            // Freeze(string.Format(@"{0}.htm", Request.Url.ToString()));
        //}
       
    }
    private void AddItemToCart()
    {
        string url="";
        if (Request.UrlReferrer != null)
        {
            url = Request.UrlReferrer.ToString();
        }
       
        string pid = Request["proid"].ToString();      
        string quality = Request["quality"].ToString();
        string price=Request["price"].ToString ();
        string ishavesize = Request["ishavesize"].ToString();
        string bianhao = Request["hidbianhao"].ToString();
        if (bianhao.Trim() == "")
        {
            bianhao = "无";
        }
        string chicun = "无";
        if (ishavesize == "1")
        {
            chicun = Request["selSize"].ToString().Trim ();           
            if (chicun == "")
            {
                MessageBox.ResponseScript("alert('保存成功!');location.href='"+url+"';");            
            }
        }
        EWang.BLL.Product_Data bll = new EWang.BLL.Product_Data();
        int num = bll.GetPNum(long.Parse(pid));
        int qua = int.Parse(quality);

        if ((num <= 0 || num - qua <= 0)&&url!="")
        {
            if (url.IndexOf("&h=u") > 0)
            {

            }
            else
            {
                url = url + "&h=u";
            }
            Response.Redirect(url);
        }
        EWang.BLL.CarData order = new EWang.BLL.CarData(long.Parse(pid), Int32.Parse(quality), decimal.Parse(price), chicun, bianhao);
        EWang.BLL.ShoppingCart cart = (EWang.BLL.ShoppingCart)Session["MyShoppingCart"]; //创建实例

        if (cart != null)
        {
            cart.AddItem(order);
            Session["MyShoppingCart"] = cart;
            Response .Redirect("View_ShoppingCart.aspx");
        }

    }
    private void delPro()
    {
        if (string.IsNullOrEmpty(Request.QueryString["pid"]))
        {
            Server.Transfer("View_ShoppingCart.aspx");
        }
        else
        {
            string strpid = Request.QueryString["pid"].ToString().Trim();
            EWang.BLL.ShoppingCart cart = (EWang.BLL.ShoppingCart)(Session["MyShoppingCart"]);
            cart.DeleteItem(long.Parse(strpid));
            Session["MyShoppingCart"] = cart;
            Response.Redirect("View_ShoppingCart.aspx");
        }
    }
    private void BindShoppingCart()
    {
        EWang.BLL.ShoppingCart cart = (EWang.BLL.ShoppingCart)(Session["MyShoppingCart"]);
        if (cart != null)
        {
            this.RepeaterCar.DataSource = cart.Orders;
            this.RepeaterCar.DataBind();
           // this.LitXJ.Text = string.Format("{0:c}", cart.TotalCost);
            this.LitZJ.Text = string.Format("{0:c}", cart.TotalCost);
        }
    }
    public string getPic(object obj)
    {
        EWang.BLL.Product_Data bll = new EWang.BLL.Product_Data();
        return EWang.Common.FormatData.getImgSrc(bll.GetPic(long.Parse(obj.ToString ())));
    }
    public string getProductName(object obj)
    {
        EWang.BLL.Product_Data bll = new EWang.BLL.Product_Data();
        return bll.GetProductName(long.Parse(obj.ToString ()));
    }
    public string CalTotal(object price, object quality)
    {
        decimal total=decimal.Parse(price.ToString ()) * Int32.Parse(quality.ToString ());
        return string.Format("{0:c}",total);
    }
    protected void BtnSave_Click(object sender, EventArgs e)
    {
      
            Label lblPID = new Label();
            TextBox txtQua=new TextBox ();
            EWang.BLL.ShoppingCart cart = (EWang.BLL.ShoppingCart)(Session["MyShoppingCart"]);
            foreach (RepeaterItem li in this.RepeaterCar.Items)
            {
                lblPID = (Label)(li.FindControl("LabPID"));
                txtQua = (TextBox)(li.FindControl("TextBox1"));
                cart.UpdateQuality(long .Parse(lblPID.Text.Trim ()),int.Parse(txtQua.Text.Trim ()));
            }
            Session["MyShoppingCart"] = cart;
            Response.Redirect("View_ShoppingCart.aspx");
       
    }
    protected void btnClear_Click(object sender, EventArgs e)
    {
        EWang.BLL.ShoppingCart cart = (EWang.BLL.ShoppingCart)(Session["MyShoppingCart"]);
        cart.ClearAll();
        Session["MyShoppingCart"] = cart;
        Response.Redirect("View_ShoppingCart.aspx");
    }

转载于:https://www.cnblogs.com/ymyglhb/archive/2009/05/19/1460122.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

csi python 摄像头 树莓派_树莓派之摄像头和人脸识别

安装好Python与树莓派外置硬件GPIO库文件sudo apt-get install python-rpi.gpio在python中使用GPIO示例&#xff1a;import RPi.GPIO as GPIO#### gpio initGPIO.setmode(GPIO.BCM)GPIO.setup(7, GPIO.OUT) #LED2GPIO.setup(8, GPIO.OUT) #LED1GPIO.output(7, GPIO.LOW) #LED2 …

dns-prefetch—DNS预解析技术

今天在看一个网站的源代码时 发现了 <link rel"dns-prefetch" href"//static.tuweia.cn/"> 对dns-prefetch有点儿好奇&#xff0c;因为不止一次地见到&#xff0c;今天终于忍不住要看看他到底是什么技术&#xff1f; 下面是在网上找到的一篇关于dns-…

用最简单的方法判断一个LONG整形的数A是2^n(2的n次方)

如果一个数是2的n次方,则化成二进制数肯定是 1000...000 的形式,那么 假设这个数是x,则 x-1 肯定是 0111...111 的形式,位数比x少一位 那么 x & (x-1) 则有 1000...000 & 0111...111 0000...000 所以当 x & (x-1) 0时,说明x是2的n次方 转载于:https://www.cnblo…

事务保存点savepoint

一、 转载于:https://www.cnblogs.com/wmqiang/p/11618714.html

复习--SQL Server (一) -系统数据库

SQL Server 2000自带了四个数据库&#xff1a; 1. Master数据库&#xff08;系统数据库&#xff09;: 记录了SQL Server 的所有服务器级别的系统信息&#xff08;16张服务器系统表&17张数据库级系统表&#xff09;&#xff0c;数据库的注册账户和密码&#xff0c;系统设置信…

关于sencha touch 2的mvc问题的思考。

1.文档定义了app.application的setcontroller方法为公共方法&#xff0c;这个方法如果不配合instantiateControllers这个私有方法&#xff0c;那么你设置的contorller将没有用&#xff0c;又为什么设置为公共方法。为什么不是给定义一个addcontroller方法&#xff0c;用于动态加…

Spring - bean的lazy-init属性(懒加载)

默认情况下&#xff0c;容器初始化的时候便会把bean实例化&#xff0c;通常这样做可以让一些配置或者bean实例化的异常在容器启动的时候就发现&#xff0c;而不是在N久之后。但有时候&#xff0c;我们希望某个可能不会用到但又不是100%不用的bean能够在我们用的时候才实例化&am…

FormsAuthentication 和 Session 超时时间不一的问题

因为FormsAuthentication 和 Session 的cookies不一样,造成了FormsAuthentication 还能进入 而 session已经超时的问题.目前看最好的办法就是当让FormsAuthentication 执行logout 然后再转到同一个页面.你可能定制一个module来解决这个问题: public class CheckSessionModule: …

python怎样分析文献综述怎么写_怎么写文献综述?

请允许我介绍一种比较简短好上手的方法~最近一次和导师的面谈中,我亲爱的导师花了半个多小时给我耐心地讲了如何写好研究生英文论文的 Literature Review文献综述部分&#xff0c;我听完觉得特别有用&#xff0c;真的超感动啊(ಥ_ಥ)我的导师把每一步都说的很清楚&#xff0c;这…

掌握基于AOP事务管理

一、手动管理和半自动工厂模式 二、AOP事务管理 1、表达式中&#xff0c;第一个※是返回值所有类型&#xff0c;service包下一个点意思是service包下的类&#xff0c;两个点意思是service包下的类和其子包下的类也包含&#xff0c;括号前面※代表的是所有方法&#xff0c;括号里…

win7无法将应用程序锁定到任务栏的几种解决方法

Windows7操作系统提供了一个比较人性化的功能&#xff1a;就是将常用的应用程序锁定到任务栏。但是可能部分用户发现这个功能最近不好用了&#xff0c;在任务栏上右键单击某应用程后&#xff0c;不会出现“将此程序锁定到任务栏”这个菜单项的提示&#xff0c;这是怎么回事呢&a…

canvas-star7.html

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>添加土地</title> </head> <body><canvas id"canvas" style"margin:0 auto;">The current browser does…

Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据

通常我们获取游标数据是用 fetch some_cursor into var1, var2 的形式&#xff0c;当游标中的记录数不多时不打紧。然而自 Oracle 8i 起&#xff0c;Oracle 为我们提供了 fetch bulk collect 来批量取游标中的数据。它能在读取游标中大量数据的时候提高效率&#xff0c;就像 SN…

ai钢笔工具怎么描线_骨灰级的AI钢笔工具运用技巧

明白了方向线的方向对曲线形态的影响后&#xff0c;我们来看一下方向线长短造成的影响如下图般&#xff0c;在同一方向上拖拉方向线&#xff1a;(可使用"直接选择工具")对于一个锚点而言&#xff0c;如果方向线越长&#xff0c;那么曲线在这个方向上走的路程就越长&a…

基于注解的事务管理

一、Transactional 注解的源码&#xff0c;定义属性时给默认值 二、基于注解的事务管理代码实现 1、bean.xml中配置 2、业务实施层的代码注解配置&#xff1a; 其中&#xff0c;配在类上则所有方法都被事务管理&#xff0c;也可配置在单独方法上&#xff1b; 转载于:https://ww…

typedef 深入剖析

typedef是一个我们常常会用到的关键字&#xff0c;而这个关键字有许多陷阱或者说许多不为我们深入理解的地方。很多书上都是很简单地一笔代过&#xff0c;并没有真正地让我们理解这个关键字。本文对其进行详细地说明。综合网络上找到的资料对其进行分析&#xff0c;这其中会涉及…

jquery数组(操作数组元素)

HTML&#xff1a; <h3>数组map方法</h3> <div id"show4"></div> jquery&#xff1a; $(document).ready(function(){var animals [dog,cat,tiger,pig,bird]; animals $.map(animals, function(n,i){return i.This is n;});$(#show4).h…

系统分析师考试大纲

一、考试说明 1.考试要求&#xff1a;  &#xff08;1&#xff09;具有系统工程的基础知识&#xff1b;  &#xff08;2&#xff09;掌握开发信息系统的综合技术知识&#xff08;硬件、软件、网络、数据库&#xff09;&#xff1b;  &#xff08;3&#xff09;熟悉企业和…

configure project qt,如何为Qt Framework配置CLion IDE?

How to configure CLion IDE for Qt Framework?Is this IDE compatible with Qt, or are there other IDEs compatible with Qt?I just want to try to use something else than Qt Creator.解决方案I was as desperate as you, until I read this Quora discussion.It worke…

PostgreSQL入门篇学习笔记(七)

2019独角兽企业重金招聘Python工程师标准>>> pg数据库&#xff1a;能提供读写全功能的服务器称为Primary database或者master database。若备份服务器在接受主数据库同步数据和应用同步数据库时&#xff0c;不能提供只读的服务&#xff0c;则该备份数据库称之为warm…