急!!!! 急求一个三层结构的asp购物车源码
急求一个三层结构的asp购物车源码 --------------------编程问答-------------------- protected void ImageButton1_Click(object sender, ImageClickEventArgs e){
if (Session["Cart"]== null) //判断是否存在购物车,若不存在则实例DataTable用以存放商品信息
{
DataTable Carttable = new DataTable(); //创建DataTable
Carttable.Columns.Add("FlowerID"); //添加DataTable表字段(自定义)
Carttable.Columns.Add("FlowerISBN");
Carttable.Columns.Add("FlowerName");
Carttable.Columns.Add("FlowerPrice");
Carttable.Columns.Add("CurrentPrice");
Carttable.Columns.Add("FlowerNumber");
DataRow dataRow = Carttable.NewRow(); //创建新行用以存放商品实际信息
Flowers flower = FlowerManager.GetFlowersAllById(id); //根据用户传来Id检索相应信息
dataRow["FlowerID"] = id.ToString(); //给相应字段赋值
dataRow["FlowerISBN"] = flower.FlowerISBN;
dataRow["FlowerName"] = flower.FlowerName;
dataRow["FlowerPrice"] = flower.Price;
dataRow["CurrentPrice"] = flower.CurrentPrice;
dataRow["FlowerNumber"] = 1; //购物数量: 初始为1
Carttable.Rows.Add(dataRow); //把新行添入虚拟表中
Session["Cart"] = Carttable; //再将表保存在Session中
}
else
{
DataTable Carttable = (DataTable)Session["Cart"] ; //购物车已经存在.则掉用初始虚拟表(DataTable)
DataRow dataRow = Carttable.NewRow(); //重新创建行
Flowers flower = FlowerManager.GetFlowersAllById(id);
foreach (DataRow row in Carttable.Rows) //循环虚拟表行数,
{
if (row["FlowerID"].Equals(flower.FlowerId.ToString()))//判断是否表中已经存在某商品的信息,.如果存在则给数量+1;若不存在则添加此商品
{
row["FlowerNumber"]=Convert.ToInt32(row["FlowerNumber"])+1;
Session["Cart"] = Carttable;
Response.Redirect("ShoppingCart.aspx");
}
}
dataRow["FlowerID"] = flower.FlowerId.ToString();
dataRow["FlowerISBN"] = flower.FlowerISBN;
dataRow["FlowerName"] = flower.FlowerName;
dataRow["FlowerPrice"] = flower.Price;
dataRow["CurrentPrice"] = flower.CurrentPrice;
dataRow["FlowerNumber"] = 1;
Carttable.Rows.Add(dataRow);
Session["Cart"] = Carttable;
}
Response.Redirect("ShoppingCart.aspx");
}
/// <summary>
/// 初始购物车
/// </summary>
public void GvBind()
{
DataTable table = Session["Cart"] as DataTable;
GridView1.DataSource = table;
//FlowerManager.GetAllFlowerById(id);
GridView1.DataBind();
}
/// <summary>
/// 清空购物车
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
Session.RemoveAll();
GvBind();
}
/// <summary>
/// 修改数量
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
DataTable table = Session["Cart"] as DataTable;
foreach (DataRow row in table.Rows)
{
string Number =string.Empty;
foreach (GridViewRow GVR in GridView1.Rows)
{
TextBox TB = GVR.FindControl("TextBox5") as TextBox;
Number = TB.Text;
if (!row["FlowerNumber"].ToString().Equals(Number))
{
row["FlowerNumber"] = Number;
}
else
{
row["FlowerNumber"] = row["FlowerNumber"];
}
}
}
Session["Cart"] = table;
GvBind();
}
/// <summary>
/// 删除商品
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
DataTable table = Session["Cart"] as DataTable;
table.Rows[e.RowIndex].Delete();
Session["Cart"] = table;
GvBind();
}
/// <summary>
/// 删除提示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (GridViewRow GVR in GridView1.Rows)
{
ImageButton IB = GVR.FindControl("ImageButton5") as ImageButton;
IB.Attributes.Add("onclick", "return confirm('确定要删除吗?')");
}
} --------------------编程问答-------------------- 楼主可以去源代码网站上看看啊。 --------------------编程问答-------------------- ... --------------------编程问答-------------------- DATA,LOGIC,ENTITY!得自己写哟。 --------------------编程问答-------------------- 这个很容易写的啊 。。。 --------------------编程问答--------------------
补充:.NET技术 , ASP.NET