就是第13章那个必须注册才能购物的例子。
怎么我点一下,却购买了两个??同时,我点一下删除,也是同时删除了两个。
我贴出shoppingCart类的文件。大家帮我一下,亲人自己学习的时候加的注释,请别见笑using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
[Serializable]
public class ShoppingCart
{
public Hashtable _CartItems = new Hashtable(); public ICollection CartItems
{
get { return _CartItems.Values; }
}
//总金额
public decimal Total
{
get
{
decimal sum = 0;
foreach (CartItem item in _CartItems.Values)
{
sum += item.Price * item.Quantity;
}
return sum;
}
} //添加商品
public void AddItem(int ID, string Name, decimal Price)
{
CartItem item = (CartItem)_CartItems[ID];//例如在 _CartItems里查找ID是3的购物记录,并赋值给item if(item == null) //如果item是空的,则是新添加
{
_CartItems.Add(ID,new CartItem(ID,Name,Price));
}
else //如果已经存在_CartItems[3]不为空,则这个物品数量+1
{
item.Quantity++;
_CartItems[ID]=item;
}
} //删除商品
public void RemoveItem(int ID)
{
CartItem item = (CartItem)_CartItems[ID]; if (item == null) //如果不存在,则返回
{
return;
} item.Quantity--; //证明已经存在,进行减一操作,如果进行减一操作以后,数量为0,则删除这个商品,否则更新数据 if (item.Quantity == 0)
{
_CartItems.Remove(ID);
}
else
{
_CartItems[ID] = item;
}
}
}[Serializable]
public class CartItem
{
private int _ID;
private string _Name;
private decimal _Price;
private int _Quantity = 1; public int ID
{
get { return _ID; }
} public string Name
{
get { return _Name; }
} public decimal Price
{
get { return _Price; }
} public int Quantity
{
get { return _Quantity; }
set { _Quantity = value; }
} public CartItem(int ID, string Name, decimal Price)
{
_ID = ID;
_Name = Name;
_Price = Price;
}
}
怎么我点一下,却购买了两个??同时,我点一下删除,也是同时删除了两个。
我贴出shoppingCart类的文件。大家帮我一下,亲人自己学习的时候加的注释,请别见笑using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
[Serializable]
public class ShoppingCart
{
public Hashtable _CartItems = new Hashtable(); public ICollection CartItems
{
get { return _CartItems.Values; }
}
//总金额
public decimal Total
{
get
{
decimal sum = 0;
foreach (CartItem item in _CartItems.Values)
{
sum += item.Price * item.Quantity;
}
return sum;
}
} //添加商品
public void AddItem(int ID, string Name, decimal Price)
{
CartItem item = (CartItem)_CartItems[ID];//例如在 _CartItems里查找ID是3的购物记录,并赋值给item if(item == null) //如果item是空的,则是新添加
{
_CartItems.Add(ID,new CartItem(ID,Name,Price));
}
else //如果已经存在_CartItems[3]不为空,则这个物品数量+1
{
item.Quantity++;
_CartItems[ID]=item;
}
} //删除商品
public void RemoveItem(int ID)
{
CartItem item = (CartItem)_CartItems[ID]; if (item == null) //如果不存在,则返回
{
return;
} item.Quantity--; //证明已经存在,进行减一操作,如果进行减一操作以后,数量为0,则删除这个商品,否则更新数据 if (item.Quantity == 0)
{
_CartItems.Remove(ID);
}
else
{
_CartItems[ID] = item;
}
}
}[Serializable]
public class CartItem
{
private int _ID;
private string _Name;
private decimal _Price;
private int _Quantity = 1; public int ID
{
get { return _ID; }
} public string Name
{
get { return _Name; }
} public decimal Price
{
get { return _Price; }
} public int Quantity
{
get { return _Quantity; }
set { _Quantity = value; }
} public CartItem(int ID, string Name, decimal Price)
{
_ID = ID;
_Name = Name;
_Price = Price;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货