最近公司一个站要加没有会员的购物车,就去网上找一下,发现代码还挺多的;
自己就去找了一些,现在已经运用到网站去了,虽然简陋了一点,还好能用;
购物车------就是用户先选中商品,然后输入要购买的数量,然后进入购物车,这是我本人的思路啊,相信大部分也是这样的吧;
我所做的用到了Session,DataTable,关键就是这两个,下面是代码,大家参考一下:
前提:有productID(商品ID),Amount(数量)这些值
DataTable dt = new DataTable();
//如果Session变量存在,则直接获取
if (Session["cart"] != null)
{
dt = (DataTable)Session["cart"];
}
else //如果session变量不存在,创建存储数据的表结构
{
dt.Columns.Add(new DataColumn("ProductID",typeof(Int32)));
dt.Columns.Add(new DataColumn("ProductName",typeof(String)));
dt.Columns.Add(new DataColumn("Amount", typeof(Int32)));
//dt.Columns.Add(new DataColumn("Total",typeof(Double)));
}
//productID不为null
//则表示选中一件商品添加到购物车
if(intProductID != 0)
{
//先判断购物车中是否存已经存在该商品
Boolean IsExist = false;
foreach(DataRow dr in dt.Rows)
{
if(dr["ProductID"].ToString() == intProductID.ToString())
{
IsExist = true;
break;
}
}
//如果购物车中存在该商品,则提示客户
//该商品不会被重复添加到购物车
if (IsExist)
{
ScriptManager.RegisterStartupScript(this, typeof(Page), "alertExist", "alert('你选择的商品(编号:" + intProductID.ToString() + ")已在购物车内!", true);
}
else
{
//DataTable dtRow = bllProducts.GetDataTable(0,null," ChannelID=3 and ProductID= "+intProductID.ToString(),null);
productmodel = bllProducts.GetModel(intProductID);
TotalPrice = productmodel.Price * intAmount;
dt.Rows.Add(new object[]{
intProductID,
productmodel.ProductName,
intAmount,
//TotalPrice,
});
}
}
this.gvCart.DataSource = dt;
this.gvCart.DataBind();
Session["cart"] = dt;
这样就可以了,这是简洁的shopping cart ,有用的话,大家就参考一下........至在于结交天下朋友.!!!!!