ListBox содержит выбранный идентификатор - PullRequest
0 голосов
/ 18 мая 2018

Мне трудно заставить работать содержимое, я пытаюсь получить ListBox и посмотреть, есть ли идентификационный номер в списке элементов, прежде чем я выберу его, так что-то вроде этого;

Session("SavedID") = 3
if ListBoxAccess.Items.Contains(Convert.ToInt32(Session("SavedID"))) Then
        ListBoxAccess.SelectedValue = Session("SavedID")
End If

if ListBoxDenied.Items.Contains(Convert.ToInt32(Session("SavedID"))) Then
        ListBoxDenied.SelectedValue = Session("SavedID")
End If

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Что ж, я ожидаю несоответствия типов данных.Вы можете либо:

  1. Просмотреть, содержит ли список ListBoxItem , либо

  2. Сравните значение listBoxItem с другим значением

Так что вы можете создать элемент для проверки, например:

If ListBoxAccess.Items.Contains(ListBoxDenied.Items.Item) Then 
    ...
Else

или вам нужно пройтись по каждому элементу списка и выяснить это самостоятельно, например

For Each item in ListBoxAccess.Items
   Dim ValInt as Int32 = CInt(item)
   ...
Next
0 голосов
/ 18 мая 2018

Во-первых, спасибо, что оба за вашу помощь, похоже, оба работают нормально, однако я нашел более короткий ответ, который я только что использовал, который не использует содержит.

Session("SavedID") = 3
if ListBoxAccess.Items.FindByValue(Session("SavedID")) IsNot Nothing Then
    ListBoxAccess.SelectedValue = Session("SavedID")
End If

if ListBoxDenied.Items.FindByValue(Session("SavedID")) IsNot Nothing Then
    ListBoxDenied.SelectedValue = Session("SavedID")
End If

Протестировано работает отлично!

0 голосов
/ 18 мая 2018

Вы можете использовать foreach для проверки элементов и установить выбранный элемент по значению

  Dim savedId = Convert.ToInt32(Session("SavedID"))
  For Each item As ListItem In ListBoxAccess.Items
    If item.Value = savedId Then
        item.Selected = True
    End If
  Next
...