在购物车中添加商品,并在下拉列表中显示它们

时间:2016-05-14 20:06:18

标签: c# html asp.net sql-server visual-studio

我在视觉工作室编程。 我有一个下拉列表,用户可以在不同的产品中进行选择,相应产品的价格会出现在它前面的标签中。

我有一个按钮名称add to cart,下面有一个下拉列表。

我想要的是:只要在第一个下拉列表中选择了产品,点击add to cart后,该产品也会出现在第二个下拉列表中(在我的情况下:Items in cart )。选择的产品数量众多,应该列入下拉列表;非常像现实生活添加到购物车选项。

此外,购物车中存储的所有商品的计算价格也会显示在我创建的标签中。

[请问我是否需要澄清我的问题]。

Store.aspx:

    <form id="form1" runat="server">
    <div>
       Select Products: <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="GetPrice"  AutoPostBack="True"> 

                 </asp:DropDownList>
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [productdata]"></asp:SqlDataSource>
 &nbsp;Price:
        <asp:Label ID="Label1" runat="server" ></asp:Label>
        <br />
         <asp:Button ID="Button1" runat="server" Text="Add to Cart" OnClick="Button1_Click" />
        <br />
        Items in cart: <asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>

        <br />

 Total Price: <asp:Label ID="Label2" runat="server"></asp:Label>
 </div>
    </form> 

Store.aspx.cs:

        protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Label3.Text = Request.QueryString["name"];//show welcome text
            String cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            using (SqlConnection sc = new SqlConnection(cs))
            {
                SqlCommand sqlcom = new SqlCommand("Select id, productname, price from productdata", sc);
                sc.Open();
                //DropDownList1.Items.Add(new ListItem("0", "select one"));
                DropDownList1.DataTextField = "productname";//show in the dropdown list
                DropDownList1.DataValueField = "price"; //show in the label
                DropDownList1.DataSource = sqlcom.ExecuteReader();

                //DropDownList1.Items.Insert("0", new ListItem("choose value"));

   DropDownList1.DataBind();
                DropDownList1.Items.Insert(0, new ListItem("select one", "0"));
            }
        }
    }

    protected void GetPrice(object sender, EventArgs e)
    {
        Label1.Text = DropDownList1.SelectedValue;
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
       //add to the cart
    }

1 个答案:

答案 0 :(得分:0)

Button1_Click上你应该做两件简单的事情:

  1. 您需要从第一个DropDownList中选择所选项目并使用DropDownList

  2. 将其添加到购物车的DropDownList2.Items.Add(selectedItem);
  3. 要显示使用以下内容总结所有DropDownList项目所需的总价格:

    DropDownList2.Items.Cast()。选择(a =&gt; Convert.ToInt32(a.Value))。Sum();

    你绝对可以阅读更多关于在以前的SO帖子中总结DropDownList项目的信息:

    How to sum all values of a dropdown list

  4. 结论

    这应该适合你:

    protected void Button1_Click(object sender, EventArgs e)
    {
        // Get the selected item
        ListItem item = DropDownList1.SelectedItem;
    
        // Reset selected to false
        item.Selected = false;
    
        // Add to the cart dropdown
        DropDownList2.DataTextField = "productname";
        DropDownList2.DataValueField = "price";
        DropDownList2.Items.Add(item);
        DropDownList2.DataBind();
    
        int sum = DropDownList2.Items.Cast<ListItem>().Select(a => Convert.ToInt32(a.Value)).Sum();
        Label2.Text = Convert.ToString(sum);
    }
    

    希望它有所帮助!如果您有任何其他问题,我将很乐意为您提供帮助