5

我正在尝试根据其他下拉列表的值更改下拉列表的列表项值。drpAdult 的列表值范围为 0-9,drpInfant 的列表值范围为 0-(选择的 drpAdult 的值)。

因此,例如,如果我在 drpAdult 下拉列表中选择 5,则 drpInfant 的列表项值范围将是 0-5。

我已经编写了下面的代码,但它没有填充 drpInfant 下拉列表中的值,我试图将其插入到 drpAdult_SelectedIndexChanged 事件中。

Protected Sub drpAdult_SelectedIndexChanged(ByVal sender As Object, 
 ByVal e As EventArgs) Handles drpAdult.SelectedIndexChanged  

    Dim count As Integer    
    count = drpAdult.Items.Count
    Dim i As Integer
    i = 0
     While count > 0
        i = i + 1

        drpInfant.Items.Add(New ListItem(i, i))
        count = count - 1

    End While
End Sub

什么可能导致此问题,我该如何解决?

4

3 回答 3

0

不确定“不起作用”是什么意思,但这似乎更容易:

Dim newCount = drpAdult.Items.Count + 1
For i As Int32 = 0 To newCount
    Dim newItem As New ListItem(i.ToString, i.ToString)
    drpInfant.Items.Add(newItem)
Next
于 2013-05-24T09:02:38.303 回答
0

沿着这些路线的东西......

drpInfant.Items.Clear()
dim n as Integer
Integer.TryParse(drpAdult.SelectedValue, n)

For i as integer = 1 to n
  if n < i Then Exit For 'it's not fun when this condition happens in VB
  drpInfant.Items.Add(New ListItem(i, i))
Next
于 2013-05-24T09:03:50.600 回答
0

你可以试试这个。我已经对此进行了测试并且工作正常:

    Protected Sub drpAdult_SelectedIndexChanged(sender As Object, e As EventArgs)

    drpInfant.Items.Clear()

    Dim count As Integer = drpAdult.SelectedIndex
    Dim i As Integer = 0

    While count >= 0
        drpInfant.Items.Add(New ListItem(i.ToString(), i.ToString()))

        i = i + 1
        count = count - 1
    End While
End Sub
于 2013-05-24T09:21:01.610 回答