现在的位置: 首页 > 综合 > 正文

asp.net 购物车

2012年02月03日 ⁄ 综合 ⁄ 共 2785字 ⁄ 字号 评论关闭

    protected void Page_Load(object sender, EventArgs e)
    {
        DisplayCart();
    }

    //添加到购物车
    protected void cb_ID_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox cb = (CheckBox)sender;
        DataGridItem dgi = (DataGridItem)cb.Parent.Parent;
        string Name = ((Label)dgi.FindControl("lb_Name")).Text;
        double Price = Convert.ToDouble(((Label)dgi.FindControl("lb_Price")).Text);

        if (cb.Checked == true)
        {
            Cart c = new Cart(Name, Price);

            if (Session["Cart"] == null)
            {
                ArrayList al = new ArrayList();
                al.Add(c);
                Session["Cart"] = al;
            }
            else
            {
                ArrayList al = (ArrayList)Session["Cart"];
                al.Add(c);
                Session["Cart"] = al;
            }
        }
        DisplayCart();
    }

    //显示购物车
    protected void DisplayCart()
    {
        if (Session["Cart"] != null)
        {
            ArrayList al = (ArrayList)Session["Cart"];
            IEnumerator ie = al.GetEnumerator();

            DataTable dt = new DataTable("Product");
            DataColumn dc1 = new DataColumn("name");
            DataColumn dc2 = new DataColumn("price");
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            while (ie.MoveNext())
            {
                Cart c = (Cart)ie.Current;
                DataRow dr = dt.NewRow();
                dr[0] = c.Name;
                dr[1] = c.Price.ToString();
                dt.Rows.Add(dr);
            }
            DataGrid2.DataSource = dt;
            DataGrid2.DataBind();
        }
        else
        {
            DataGrid2.DataSource = null;
            DataGrid2.DataBind();
        }
    }

    //删除单项
    protected void bt_Delete_Click(object sender, EventArgs e)
    {
        Button bt = (Button)sender;
        DataGridItem dgi = (DataGridItem)bt.Parent.Parent;
        string Name = ((Label)dgi.FindControl("lb_Name")).Text;

        if (Session["Cart"] != null)
        {
            int i = 0;
            ArrayList al = (ArrayList)Session["Cart"];
            IEnumerator ie = al.GetEnumerator();
            while (ie.MoveNext())
            {
                Cart c = (Cart)ie.Current;
                if (c.Name == Name)
                {
                    al.RemoveAt(i);
                    break;
                }
                i++;
            }
            Session["Cart"] = al;
        }
        DisplayCart();
    }

    //清空购物车
    protected void bt_Cart_Click(object sender, EventArgs e)
    {
        Session["Cart"] = null;
        DisplayCart();
    }

}

//自定义购物车类型
public class Cart
{
    private string C_Name;
    private double C_Price;

    public string Name
    {
        get
        {
            return C_Name;
        }
        set
        {
            C_Name = value;
        }
    }

    public double Price
    {
        get
        {
            return C_Price;
        }
        set
        {
            C_Price = value;
        }
    }

    public Cart(string Name, double Price)
    {
        C_Name = Name;
        C_Price = Price;
    } 

抱歉!评论已关闭.