• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
掩耳盗心
博客园    首页    新随笔    联系   管理    订阅  订阅

profile 实现购物车 实例 (二)

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

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

posted @ 2010-02-18 15:03  剑在心中  阅读(746)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3