我在视觉工作室编程。 我有一个下拉列表,用户可以在不同的产品中进行选择,相应产品的价格会出现在它前面的标签中。
我有一个按钮名称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>
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
}
答案 0 :(得分:0)
在Button1_Click
上你应该做两件简单的事情:
您需要从第一个DropDownList
中选择所选项目并使用DropDownList
DropDownList2.Items.Add(selectedItem);
要显示使用以下内容总结所有DropDownList
项目所需的总价格:
DropDownList2.Items.Cast()。选择(a =&gt; Convert.ToInt32(a.Value))。Sum();
你绝对可以阅读更多关于在以前的SO帖子中总结DropDownList项目的信息:
这应该适合你:
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);
}
希望它有所帮助!如果您有任何其他问题,我将很乐意为您提供帮助