asp.net中做购物车的问题(如何显示多次购买却还未结算的商品信息)
发布网友
发布时间:2022-04-27 11:03
我来回答
共3个回答
热心网友
时间:2022-04-27 12:32
写一个购物车的类Cart,属性:商品,数量.(也可以对应在数据库中创建表!!!),每次选择商品购买后放到集合中去!!!如果是相同的商品则增加数量,否则就追加一项cart类在集合中!!然后扔到session中去!!
热心网友
时间:2022-04-27 13:50
下面是我做的网上商城点击商品放入购物车按钮单击事件的代码(创建购物车)(仅供参考)protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (Session["car"] == null)
{
DataTable dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("Photo");
dt.Columns.Add("Name");
dt.Columns.Add("Quantity");
dt.Columns.Add("UnitPrice"); DataRow r = dt.NewRow();
r["Id"] = ((HiddenField)DataList1.Items[0].FindControl("HiddenField1")).Value;
r["Photo"] = ((Image)DataList1.Items[0].FindControl("Image1")).ImageUrl.ToString();
r["Name"] = ((Label)DataList1.Items[0].FindControl("Label1")).Text;
r["Quantity"] = 1;
r["UnitPrice"] = ((Label)DataList1.Items[0].FindControl("Label2")).Text;
dt.Rows.Add(r);
Session["car"] = dt;
Response.Redirect("Cart.aspx");
}
else
{
DataTable dt = (DataTable)Session["car"];
foreach (DataRow r in dt.Rows)
{
if (r["Id"].ToString() == ((HiddenField)DataList1.Items[0].FindControl("HiddenField1")).Value)
{
r["Quantity"] = Convert.ToInt32(r["Quantity"]) + 1;
Session["car"] = dt; Response.Redirect("Cart.aspx");
} }
DataRow dr = dt.NewRow();
dr["Id"] = ((HiddenField)DataList1.Items[0].FindControl("HiddenField1")).Value;
dr["Photo"] = ((Image)DataList1.Items[0].FindControl("Image1")).ImageUrl.ToString();
dr["Name"] = ((Label)DataList1.Items[0].FindControl("Label1")).Text;
dr["Quantity"] = 1;
dr["UnitPrice"] = ((Label)DataList1.Items[0].FindControl("Label2")).Text;
dt.Rows.Add(dr);
Session["car"] = dt; Response.Redirect("Cart.aspx"); }
}购物车界面直接用gridview和Session["car"] 绑定(TotalPrice()
是求总价的方法) private void DataBinds()
{
GridView1.DataSource = (DataTable)Session["car"];
GridView1.DataBind();
TotalPrice();
}
private void TotalPrice()
{
double a = 0;
DataTable dt = (DataTable)Session["car"];
foreach (DataRow dr in dt.Rows)
{
a += Convert.ToDouble(dr["Quantity"]) * Convert.ToDouble(dr["UnitPrice"]);
} monery.Text = a.ToString(); }
热心网友
时间:2022-04-27 15:25
你用Session记下来撒,或者在数据库里面做一个临时表,这样子就行咯,