从ASP ListBox获取所有选定的值

Eva*_*ark 19 c# asp.net listbox

我有一个ASP ListBox,其SelectionMode设置为"多个".是否有任何方法可以检索所有选定的元素,而不仅仅是最后一个元素?

<asp:ListBox ID="lstCart" runat="server" Height="135px" Width="267px" SelectionMode="Multiple"></asp:ListBox>
Run Code Online (Sandbox Code Playgroud)

使用lstCart.SelectedIndexjust返回最后一个元素(如预期的那样).有什么东西可以让我全部被选中吗?

这是一个Web表单.

Ahm*_*eed 54

您可以使用ListBox.GetSelectedIndices方法并循环结果,然后通过items集合访问每个结果.或者,您可以遍历所有项目并检查其Selected属性.

// GetSelectedIndices
foreach (int i in ListBox1.GetSelectedIndices())
{
    // ListBox1.Items[i] ...
}

// Items collection
foreach (ListItem item in ListBox1.Items)
{
    if (item.Selected)
    {
        // item ...
    }
}

// LINQ over Items collection (must cast Items)
var query = from ListItem item in ListBox1.Items where item.Selected select item;
foreach (ListItem item in query)
{
    // item ...
}

// LINQ lambda syntax
var query = ListBox1.Items.Cast<ListItem>().Where(item => item.Selected);
Run Code Online (Sandbox Code Playgroud)