我很难让包含工作,我想要做的是获取ListBox,看看ID号是否在项目列表中,然后我选择它,就像这样;
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
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
好吧,我期待数据类型不匹配。你可以:
查看列表框是否包含 ListBoxItem ,或
将listBoxItem的 值 与其他值进行比较
因此,您可以创建一个项目来检查:
If ListBoxAccess.Items.Contains(ListBoxDenied.Items.Item) Then
...
Else
或者您必须遍历列表框中的每个项目并找出自己,即
For Each item in ListBoxAccess.Items
Dim ValInt as Int32 = CInt(item)
...
Next
答案 2 :(得分:1)
首先感谢你的帮助,两者似乎都运行正常,但是我想出了一个较短的答案,我刚刚使用过,它没有使用包含。
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
经测试很有效!