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 这个页面去付款了。

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

  • 相关阅读:
    解决nodejs使用yarn安装vue-cli提示'vue' 不是内部或外部命令
    转载——java synchronized详解
    转载——Java中this关键字和super关键字的使用
    转载—— JUnit单元测试教程(翻译自Java Code Geeks)
    Usage and Idioms——Use with Maven
    转载——JUnit 5 新特性
    Usage and Idioms——Categories
    转载——单元测试利器 JUnit 4
    Usage and Idioms——Test Fixtures
    深入JUnit源码之Rule
  • 原文地址:https://www.cnblogs.com/cestbon/p/1669174.html
Copyright © 2011-2022 走看看