Menus

Tuesday, December 4, 2012

Retrieve Selected Items of an ASP.NET ListBox using LINQ



I had recently written a post on Programmatically Select Multiple Items of an ASP.NET ListBox. A user ‘JukeBox’ mailed back asking me if it was possible to retrieve the selected items of a ListBox using LINQ. Here’s how to do so:
<div>
    <asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple">
        <asp:ListItem Value="One" Selected="True" />
        <asp:ListItem Value="Two" />
        <asp:ListItem Value="Three" />
        <asp:ListItem Value="Four" Selected="True" />
        <asp:ListItem Value="Five" />
    </asp:ListBox>
    <br />
    <br />
    <asp:Button ID="btnSel" runat="server" Text="Get Selected"
        onclick="btnSel_Click" />
</div>
C#
protected void btnSel_Click(object sender, EventArgs e)
{
    var selItems = from ListItem li in ListBox1.Items
                   where li.Selected == true
                   select li.Text;

    Response.Write("Selected Item(s): </br>");
    foreach (var item in selItems)
    {
        Response.Write(item.ToString() + "</br>");
    }
}
VB.NET
Protected Sub btnSel_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim selItems = _
     From li As ListItem In ListBox1.Items _
     Where li.Selected = True _
     Select li.Text

    Response.Write("Selected Item(s): </br>")
    For Each item In selItems
        Response.Write(item.ToString() & "</br>")
    Next item
End Sub
On clicking the Button, the selected items are fetched as shown below:
image

No comments:

Post a Comment