就是第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;
    }
}