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;
}