views:

4858

answers:

4

I'm trying to display all selected items from a listbox into a textbox. Currently I'm doing the following without success:

For i As Integer = 0 To lb_words.ListCount
    If lb_words.Selected(i) = True Then
        tb_text.Text &= " Presto"
    End If
Next

What should be happening is that for every selected item in my listbox (lb.words) I want it to be appended to my textbox. So say my listbox contains Apple, Orange and Banana and I select Apple and Banana, my textbox text should read "Apple Banana"...

I've just introduced myself to ASP.NET so keep things simple :D Thanks.

+2  A: 

Try this:

Dim s as String = ""

For each x as ListItem in lb_words.Items
     if x.Selected Then s &= x.Text & " "
Next
Stephen Wrighton
Using a StringBuilder would be more efficient.
Wayne Hartman
yes, but he asked for simple, and appending to a string is simpler than dealing with String builders
Stephen Wrighton
This code looks promising, however I'm getting errors for 'ListBoxItem' amd 'x.isselected'... should I note that I've got Option Explicit and String On? ListBoxItem error gives me the option to replace it with ListItem or ListBox
tmhai
@tmhai - the IsSelected should be Selected. and listboxitem should have been ListItem. I blame the errors on it being midnight
Stephen Wrighton
Awesome! Thanks.
tmhai
A: 

One solution would be to override the .ToString() method to concatenate all the values in your list.

Wayne Hartman
the thing is that he doesn't want ALL the values, just the values that have been selected by the user
Stephen Wrighton
A: 

aspx page:

   <asp:ListBox ID="myList" runat="server" SelectionMode="Multiple">
        <asp:ListItem>Apple</asp:ListItem>
        <asp:ListItem>Orange</asp:ListItem>
        <asp:ListItem>Grapes</asp:ListItem>
   </asp:ListBox>
   <br/>
   <asp:TextBox id="myText" runat="server"></asp:TextBox>

codebehind (C#)

 StringBuilder s=new StringBuilder();
        for (int i = 0; i < myList.Items.Count; i++)
            sb.Append(myList.Items[i].Selected ? myList.Items[i].Text + " " : "");
 myText.Text=sb.ToString();
TheVillageIdiot
A: 

You can use lb_words.SelectedItems instead of looping through all the records and finding the selected items among them. You can use the following code:

        Dim s As New StringBuilder()

        For Each item As Object In Me.lb_words.SelectedItems
            s.Append(item)
            s.Append(" ")
        Next

        Me.TextBox1.Text = s.ToString()

If you select Apple & Banana, your textbox will contain 'Apple Banana '

Rashmi Pandit
an asp.net listbox has no SelectedItems method
Dan F