profile 兑现购物车 实例(二)(转)

profile 实现购物车 实例(二)(转)

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

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

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

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

profile 兑现购物车 实例(二)(转)

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

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

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

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

 

profile 兑现购物车 实例(二)(转)代码
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(...)就是添加商品的类。

 

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

 

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

 

profile 兑现购物车 实例(二)(转)代码
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 这个页面去付款了。

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