Adding ListItems to Session

There are examples here on Stackflow on how to add ListBox items to the session and then repopulate the items back to the ListBox but for some reason it is not working.

Here's the code snippet

Private Sub btnSelect_Click(sender As Object, e As EventArgs) Handles btnSelect.Click If lstFields.SelectedIndex >= 0 Then For i As Integer = 0 To lstFields.Items.Count - 1 If lstFields.Items(i).Selected Then If Not arrayFields.Contains(lstFields.Items(i)) Then arrayFields.Add(lstFields.Items(i)) Session("items") = arrayFields End If End If Next For i As Integer = 0 To arrayFields.Count - 1 If Not lstSelected.Items.Contains((CType(arrayFields(i), ListItem))) Then lstSelected.Items.Add((CType(arrayFields(i), ListItem))) End If lstFields.Items.Remove((CType(arrayFields(i), ListItem))) Next lstSelected.SelectedIndex = -1
End Sub

When I try to repopulate the items back to ListBox using the For Each loop, the error I kept getting using VS 2015 that shows:

An exception of type 'System.InvalidCastException' occurred in FocusVB.dll but was not handled in user code

Additional information: Unable to cast object of type 'System.Web.UI.WebControls.ListBox' to type 'System.Collections.IEnumerable'.

Here's the snippet of the for each loop:

For Each item As ListItem In Session("item") lstSelected.Items.Add(New ListItem(item.Text, item.Value))
Next

Am I missing somewhere in the code?

2

2 Answers

Just remove ListItem from the line For each item as listitem ..

 For Each item In Session("item")

lstSelected.Items.Add(New ListItem(item.Text, item.Value)) Next

Don't ask me why ,rather read this .Take a look at the namespace of it,it'll answer you(if you are not talking about System.Windows.Documents.listItem)

1

Your enumerated list contains Session("items") = arrayFields

However, your reference is item, not items. Change to items.

If Not Session("items") Is Nothing Then For Each item As ListItem In Session("items") lstSelected.Items.Add(New ListItem(item.Text, item.Value)) Next
End If
3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like