简单购物车问题

chenkuikk 2010-06-04 03:53:37

页面是这样的。
<asp:Repeater ID="rtPets" runat="server" DataSourceID="ObjectDataSource1"
onitemcommand="rtPets_ItemCommand">
<ItemTemplate>
<div>
<p>
<img src='images/pets/<%#Eval("Photo") %>' /></p>
<p>
<a href='ProductDetail.aspx?id=<%#Eval("ID") %>'><%#Eval("Name") %></a></p>
<p>
<asp:Button ID="btnBuy" runat="server" Text="购买" CommandName="buy" CommandArgument='<%#Eval("ID") %>' /></p>
</div>
</ItemTemplate>
</asp:Repeater>
-------------后台
protected void rtPets_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "buy")
{
int id = int.Parse(e.CommandArgument.ToString());
}
}
问题:

我的意思是。rtPets_ItemCommand里面点购买事件。我得到了ID 到另一个页面(购物车页面)里我如何自动生成一行。
点 继续购物。则另加一行。希望各位前辈能够给我点自动生成一行的代码。详细点最好。新手。
拜谢!
...全文
112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenkuikk 2010-06-17
  • 打赏
  • 举报
回复
再顶下。 怎么用 hashTable 或Cookie 来实现呀。
有代码例子吗。简单化就行。
chenkuikk 2010-06-09
  • 打赏
  • 举报
回复
顶一下
chenkuikk 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
protected void Reperter_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.Equals(""))
{
string id=e.CommandArgument.ToString();

}
}

Button btn……
[/Quote]
非常感谢。我的意思就是如何 添加数据到hashtable,在其他动态生成行 关键就是这一句我有点不太懂。
chenkuikk 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jianshao810 的回复:]
将整个购物车 序列化装到session 或者cookies 或者 私有配置里。
因为这些 都可以存储用户的东西.
你知道吗?你缺小一个购物车的类。这个类包括购物车的增删改
[/Quote]
Cart.cs ??
/// <summary>
/// 返回购物车中商品的总价
/// </summary>
public decimal Total
{
get
{
decimal sum = 0;
foreach (CartItem item in Items.Values)
{
sum += item.Price * item.Quantity;
}
return sum;
}
}

public Cart()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

/// <summary>
/// 添加商品到购物车
/// </summary>
/// <param name="id">商品编号</param>
/// <param name="name">商品名称</param>
/// <param name="price">商品价格</param>
public void AddItem(int id, string name, decimal price)
{
//添加商品步骤分析:1检查购物车中是否有该类商品已经存在,如果没有就向购物车增加该商品;2如果有该商品,那么就对已经存在的该商品,数量累加1

CartItem item =(CartItem )Items[id];
if (item == null)
{
Items.Add(id, new CartItem(id, name, price));
}
else
{
item.Quantity++;
Items[id] = item;
}

}

/// <summary>
/// 从购物车当中删除商品
/// </summary>
/// <param name="id">编号</param>
public void RemoveItem(int id)
{
//删除商品:1将存在于购物车当中的商品数量减1;2判断该商品数量是否为0,如果为0,我们将该商品彻底从购物车中删除,否则就更新购物车;
CartItem item = (CartItem)Items[id];
if (item == null)
{
return;
}

item.Quantity--;
if (item.Quantity == 0)
{
Items.Remove(id);
}
else
{
Items[id] = item;
}
}
jianshao810 2010-06-09
  • 打赏
  • 举报
回复
将整个购物车 序列化装到session 或者cookies 或者 私有配置里。
因为这些 都可以存储用户的东西.
你知道吗?你缺小一个购物车的类。这个类包括购物车的增删改
  • 打赏
  • 举报
回复
hashtable用的较少、、 帮顶了... 用JQuery添加行也可以.
wuyq11 2010-06-04
  • 打赏
  • 举报
回复
protected void Reperter_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName.Equals(""))
{
string id=e.CommandArgument.ToString();

}
}

Button btn= sender as Button ;
RepeaterItem item = btn.NamingContainer as RepeaterItem;
添加数据到hashtable等,在其他动态生成行


皇城龙三 2010-06-04
  • 打赏
  • 举报
回复
dzpzds 2010-06-04
  • 打赏
  • 举报
回复
下个petshop去吧
微软的经典列子。

62,040

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧