上个例子,我见了两个类,一个商品类。一个购物车类。并把购物城类设置成了 profile 的提供程序类。
还是先弄个商品列表吧,好买东西。
这里的代码应该就不用贴了。用 用户控件啊,datalsit 随便怎么都行啊。我这里用的是datalist。总之没个商品项里面要带一个 addtocart (添加此商品到购物车)
这里不难理解。来看看这个 datalist 的购买按钮该怎么写吧
那个ADDTO 那里就是我弄的ImageButton,设置它的 CommadName 属性为 buy.
给ImageButton 的 CommandArgment 这个属性帮顶个字段 Eval("Oilid"),当然这个我数据源中的那个 id字段。
然后给 datalist 添加一个 ItemCommand 的处理函数。
接下来就来写这个事件的内部了
{
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(...)就是添加商品的类。
---------------------------------------------------------------------------------------------------------------------------------------------------
现在就来查看购物车吧。看看我们都在这个商城里都买了什么东西吧。
{
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 这个页面去付款了。
也可以形成个后台的订单,便于查收。