如何在asp.net c#的“添加到购物车”页面中添加多个产品?

时间:2015-12-04 05:48:45

标签: c# asp.net .net asp.net-mvc listview

我正在建立一个网站,当客户点击添加到购物车按钮,然后特定产品及其详细信息应显示在添加到购物车页面,正如我在下面提到的代码使用此我只能显示一个产品,它是的信息。

        DataSet ds = new DataSet();
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from tblProductDetails where ProductId=" + PId, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
        con.Close();
        productcartlistview.DataSource = ds;
        productcartlistview.DataBind();

并使用隐藏字段我得到产品ID。

    Button btn_AddCart = sender as Button;
    HiddenField myhiddenfield =btn_AddCart.NamingContainer.FindControl("hiddenID") as HiddenField;
    int myID = Convert.ToInt32(myhiddenfield.Value);

    Response.Redirect("CartPage.aspx?ProdId=" + myID + "");

因此,当我想添加另一个产品时,它已被新的产品取代。我想在listview中显示多个产品及其详细信息。如何才能这样做?请帮我 。 谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下你需要保持用户会话的状态。通过维持状态,我的意思是说你需要不断维护他/她正在添加到购物车或删除的产品他们或改变数量或类似的东西。

为此,您必须使用.NET Framework中提供的一些状态持久性组件。

就像你提到现有产品被新产品取代一样,为避免这种情况,你必须使用状态持久化对象,如会话或应用程序状态或Cookie或最终数据库等。< / em>根据您的要求类型选择它。

仅举一例您的情况,让我们说每次用户执行添加到购物车事件时,您都会创建一个List对象并将产品ID存储在其中,并在用户添加新内容时不断添加新ID产品。然后将列表存储在Session

我建议你阅读这篇文章,这对于理解客户端和服务器端状态管理的状态管理概念非常好。

Client side and server side state management techniques