在运行时以编程方式将值添加到下拉列表

时间:2013-05-24 08:58:37

标签: asp.net vb.net

我正在尝试根据其他下拉列表的值更改下拉列表的列表项值。 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

可能导致此问题的原因,我该如何解决?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

你可以试试这个。我测试了这个&amp;工作正常:

    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