asp.net中做购物车的问题(如何显示多次购买却还未结算的商品信息)

我在做购物车的时候,是用gridview来显示商品的,在点击购买的时候会跳转到另一张网页(购买按钮是在gridview中添加HyperLinkFiled做成的)。另一张页... 我在做购物车的时候,是用gridview来显示商品的,在点击购买的时候会跳转到另一张网页(购买按钮是在gridview中添加HyperLinkFiled做成的)。另一张页面主要实现我所购买的商品信息(我打算用gridview来显示),第一次购买的物品可以显示,可当我点击继续购物后,继续购买的物品会显示,但会覆盖我原来购买的商品,怎么才能让我几次购买的商品的信息都显示出来呢?
请知道的朋友回答一下,谢谢了!在线等~
展开
 我来答
匿名用户
2013-09-09
展开全部
写一个购物车的类Cart,属性:商品,数量.(也可以对应在数据库中创建表!!!),每次选择商品购买后放到集合中去!!!如果是相同的商品则增加数量,否则就追加一项cart类在集合中!!然后扔到session中去!!
匿名用户
2013-09-09
展开全部
下面是我做的网上商城点击商品放入购物车按钮单击事件的代码(创建购物车)(仅供参考)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(); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-09
展开全部
你用Session记下来撒,或者在数据库里面做一个临时表,这样子就行咯,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式