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

我在做购物车的时候,是用gridview来显示商品的,在点击购买的时候会跳转到另一张网页(购买按钮是在gridview中添加HyperLinkFiled做成的)。另一张页面主要实现我所购买的商品信息(我打算用gridview来显示),第一次购买的物品可以显示,可当我点击继续购物后,继续购买的物品会显示,但会覆盖我原来购买的商品,怎么才能让我几次购买的商品的信息都显示出来呢?
请知道的朋友回答一下,谢谢了!在线等~

写一个购物车的类Cart,属性:商品,数量.(也可以对应在数据库中创建表!!!),每次选择商品购买后放到集合中去!!!如果是相同的商品则增加数量,否则就追加一项cart类在集合中!!然后扔到session中去!!
温馨提示:内容为网友见解,仅供参考
第1个回答  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(); }
第2个回答  2013-09-09
你用Session记下来撒,或者在数据库里面做一个临时表,这样子就行咯,

asp.net怎么做购物车?
我的想法是将购买的东西用表保存,再将表保存到session[cart]中 ,点击购买时会有一件商品信息,假设为保存到DataTable中的tab点击购买按钮的click事件:if(session[cart]==null) \/\/如果是第一次购买{ DataTable table=new DataTable(); \/\/动态生成表 DataColumn column1=new DataColumn(...

...就只更新数量,我用的是asp.net+sql server 2005.
\/\/向购物车中添加商品,如果购物车中已经存在该商品,则商品数量加1,如果是第一次购买,则向购物车中添加一条商品信息 if(!IsPostBack){ string P_str_CartID = Session["member"].ToString(); 会员id int P_str_GoodsID =Convert.ToInt32(Request["id"]); 产品id DataSet ds = DB.C...

asp.net开发一购物车,也没有什么错误,点击存入订单是提示“'NewCartInse...
第一步,测试存储过程是否正确,手动执行一次即可;第二步,单步调试 目测InsertParameters的值是否正确;第三步,拿调试出来的InsertParameters的值去执行存储过程 如果一切正常而程序还是不好使,鉴定为楼主RP不行,建议找个同事帮忙,重复以上步骤

asp.net如何在物品加入购物车后提交订单?
您先把用户输入的信息,入订单表。返回订单表ID。然后将购物车中的商品循环插入商品订单表,就可以。

我的毕业设计是基于asp.net的《实体商店在线选购平台》,跟网上购物一样...
个人与商品是多对多关系,即某个人可以买多个商品,某个商品也可被多个人购买。显示收藏商品是根据这个人的ID来查询。实现收藏商品就像加入购物车,在你的数据库中应该有设购物车这个表。而这个表中记录着用户收藏的商品信息以及用户的主要信息。一般点击收藏,就会将该商品的信息一个当前用户的主要信息...

java web 开发 购物网站 怎么做订单结算部分???
我写过两次订单结算,不过都是asp.net下的,但是应该差不多吧.订单结算是最后的步骤,提交订单之后需要做结算,实际上就是收钱嘛.传统来讲此时需要一个支付接口,比如说支付宝财付通快钱 网银在线之类的,他们提供接口,我们按照他们说明文档来实现就好.重要的是交易记录哦!!提交订单后需要交易日志(不能从字面...

ecshpo 购物车不显示已购的物品该怎么调试啊
但是即使登陆了也提示“未登陆”啊,显示的是没有登陆的信息; 回答 额,知道了。php中的

在asp.net中 查看商品的时候,为什么我的id得不到
你绑定商品的时候有没有绑定ID啊,如果没有就根据商品名称查询一次,有的话就直接得到id就行了

支付完成后 返回网站的页面 如何判断是什么方式支付的 asp.net
一般做电子商务网站的时候都会有提供选择支付方式的,在用户选择支付方式后保存用户的选择就可以 了。可以用一个类,如在实现购物车的类里面加一个字段用来保存支付方式,更直接的方法可以用URL来传值*.aspx?type=***,当然这个要用UrlEncode和UrlDecode要加码解码。只要有让用户选择都可以用以上方式保存,...

ASP.NET cookies存购物车中文参数 在后台输出时前台出现乱码.怎么回事...
JSONHELPER对List进行生成的时候,有没有一个选项,设置字符集?因为JS会自动适应当前页面设置的字符集的,如果当前页面是GB2312,而收到的是UTF-8,那就会乱码了。

相似回答