0

我需要将一个项目及其相应的价格存储到一个数组中,然后显示这些。

例如预订 10.00 的巧克力棒 0.85

我会将商品和价格填充到下拉列表中。在按钮单击事件中,我想将这些选择添加到数组中。

我将如何在 vb.net 中执行此操作?

<asp:DropDownList ID="ddlItem" runat="server">
            <asp:ListItem Value="12.49">book</asp:ListItem>
            <asp:ListItem Value="14.99">music</asp:ListItem>
            <asp:ListItem Value="0.85">chocolate bar</asp:ListItem>
            <asp:ListItem Value="10.00">box of chocolates 1</asp:ListItem>
            <asp:ListItem Value="47.50">bottle of perfume 1</asp:ListItem>
            <asp:ListItem Value="27.99">bottle of perfume 2</asp:ListItem>
            <asp:ListItem Value="18.99">bottle of perfume</asp:ListItem>
            <asp:ListItem Value="9.75">headache pills</asp:ListItem>
            <asp:ListItem Value="11.25">box of chocolates 2</asp:ListItem>
</asp:DropDownList>

按钮单击事件中的代码似乎总是覆盖我最初添加的内容。

 Protected Sub btnAdd_Click(sender As Object, e As System.EventArgs) Handles btnAdd.Click

        'Add items into an array list
        Dim Item As String = ddlItem.SelectedItem.Text
        Dim Price As Decimal = ddlItem.SelectedValue

        Dim ListItemCollection As ListItemCollection = New ListItemCollection

        ListItemCollection.Add(Item)

        Response.Write(ListItemCollection.Count)

    End Sub
4

1 回答 1

0

在服务器端/后面的代码上,您应该能够通过名称访问您的 DropDownList;ddlItem.

ddlItem.Items 成员公开了一个ListItemCollection,而后者又实现了IEnumerable

IEnumerable 有一个ToArray 扩展方法。因此,它应该像ddlItem.Items.ToArray().

希望有帮助。

编辑

阅读您的评论后,我知道我可能误读了您的问题。答案还是很简单的,代码如下:

Protected Sub btnAdd_Click(sender As Object, e As System.EventArgs) Handles btnAdd.Click
    Dim selectedItems = ddlItem.Items.Where(Function(n) n.Selected).ToArray()
    Response.Write(selectedItems.Count)
End Sub
于 2012-07-17T09:36:58.680 回答