zoukankan      html  css  js  c++  java
  • profile 实现购物车 实例 (二)

    上个例子,我见了两个类,一个商品类。一个购物车类。并把购物城类设置成了 profile 的提供程序类。

    还是先弄个商品列表吧,好买东西。

    这里的代码应该就不用贴了。用 用户控件啊,datalsit 随便怎么都行啊。我这里用的是datalist。总之没个商品项里面要带一个 addtocart (添加此商品到购物车)

    这里不难理解。来看看这个 datalist 的购买按钮该怎么写吧

    那个ADDTO 那里就是我弄的ImageButton,设置它的 CommadName 属性为 buy.

    给ImageButton 的 CommandArgment 这个属性帮顶个字段 Eval("Oilid"),当然这个我数据源中的那个 id字段。

    然后给 datalist 添加一个 ItemCommand 的处理函数。

    接下来就来写这个事件的内部了

    代码
    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            
    if (e.CommandName=="buy")
            {
               
                
    //e.CommandArgument 为OilId
                SqlConnection conn = Datacaozuo.conn;
                
    string sqlstr = "SELECT OilId,Oilname,Oilprice,OilimageUrl FROM Oil_product WHERE OilId='" + e.CommandArgument + "'";
                SqlDataAdapter adapter 
    = new SqlDataAdapter(sqlstr, conn);
                DataSet da 
    = new DataSet();
                adapter.Fill(da, 
    "temp");
                
    string  name,imageurl;
                
    decimal price;
                Guid id 
    = (Guid)da.Tables["temp"].Rows[0][0];
                name 
    = da.Tables["temp"].Rows[0][1].ToString();
                price 
    = decimal.Parse(da.Tables["temp"].Rows[0][2].ToString());
                imageurl 
    = da.Tables["temp"].Rows[0][3].ToString();
                Profile.ShoppingCart.AddCartItem(
    new CartItem(id,name,price,imageurl));
            }
            
    else
            {
                Response.Write(
    "错了");
            }
        }

    这样 e.CommandArgment 返回的就是数据项的 id ,不知道其他人知道不知道。反正我费了不少劲才搞懂这里。索性就都写上了。毕竟这还是针新手的随笔

    这个消息函数就实现了向购物车中去添加商品的功能了。可以看看上个教程里的两个类 AddCarItem(...)就是添加商品的类。

    ---------------------------------------------------------------------------------------------------------------------------------------------------

    现在就来查看购物车吧。看看我们都在这个商城里都买了什么东西吧。

    代码
    protected void Page_Load(object sender, EventArgs e)
        {
            DataList1.DataSource 
    = Profile.ShoppingCart.CartItems;
            DataList1.DataBind();
            
    if (!IsPostBack)
            {
                Label1.Text 
    = "Total Price = " + Profile.ShoppingCart.Total.ToString() + "$";
            }
        }

    如此简单。购物车的雏形就形成了

    Response.Redirect("Account/Account.aspx?total=" + Profile.ShoppingCart.Total);

    这样就能去 Account 这个页面去付款了。

    也可以形成个后台的订单,便于查收。

  • 相关阅读:
    golang 数据结构 优先队列(堆)
    leetcode刷题笔记5210题 球会落何处
    leetcode刷题笔记5638题 吃苹果的最大数目
    leetcode刷题笔记5637题 判断字符串的两半是否相似
    剑指 Offer 28. 对称的二叉树
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 26. 树的子结构
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 24. 反转链表
    剑指 Offer 22. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/cestbon/p/1669174.html
Copyright © 2011-2022 走看看