4

我的 aspx 页面中有一个如下列表框

<asp:ListBox ID="ddlCategory" runat="server" SelectionMode="Multiple" Width="200"
></asp:ListBox>

我已将其与类别数据集绑定。一切正常。现在我想从服务器端的这个列表框中获取所有选定的项目。有很多方法可以实现这些。但我不想迭代每个项目。因为列表项有 1000 个类别。

有什么办法可以做到这一点?

4

3 回答 3

4

你可以这样实现

var selectedItems = from li in ddlCategory.Items.Cast<ListItem>()
                    where li.Selected == true
                    select li;

在这里查看另一种实现方式

http://frazsundal.blogspot.com/2012/05/fetch-aspnet-listbox-control-selected.html

于 2012-05-02T11:32:21.967 回答
2

以下是对您有帮助的示例。

Dim lst As New System.Web.UI.WebControls.ListBox
lst.Items.Add(New ListItem("1", 1))
lst.Items.Add(New ListItem("2", 2))
lst.Items.Add(New ListItem("3", 3))
lst.SelectionMode = ListSelectionMode.Multiple
lst.Items(0).Selected = True
lst.Items(2).Selected = True
Dim selectedItems As List(Of ListItem) = (From li In lst.Items.Cast(Of ListItem)() Where li.Selected = True Select li).ToList
于 2012-05-03T08:43:56.040 回答
0

您可以获得所选项目的所有索引:

        int [] indexes= ListBox1.GetSelectedIndices();
        for (int i = 0; i < indexes.Length; i++)
        {
            // ListBox1.Items[i]  ;
        }
于 2012-05-02T12:26:31.273 回答