Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在运行时以编程方式向下拉列表中添加值_Asp.net_Vb.net - Fatal编程技术网

Asp.net 在运行时以编程方式向下拉列表中添加值

Asp.net 在运行时以编程方式向下拉列表中添加值,asp.net,vb.net,Asp.net,Vb.net,我正在尝试根据其他下拉列表的值更改下拉列表的列表项值。drpAdult的列表值范围为0-9,drpInfant的列表值范围为0-(已选择drpAdult的值) 因此,例如,如果我在drpAdult下拉列表中选择5,drpInfant的列表项值的范围将是0-5 我已经编写了下面的代码,但它并没有填充drpInfant下拉列表中的值,我正试图在drpAdult_SelectedIndexChanged事件中插入该下拉列表 Protected Sub drpAdult_SelectedIndexCha

我正在尝试根据其他下拉列表的值更改下拉列表的列表项值。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
什么可能导致此问题?我如何解决此问题?

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

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

沿着这条线的东西

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
drpInfant.Items.Clear()
作为整数的dim n
整数.TryParse(drpAdult.SelectedValue,n)
对于i作为整数=1到n
如果n
您可以试试这个。我已经对此进行了测试,效果良好:

    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

请指定“我下面的代码不工作”这是什么意思?我的意思是,它不是在drpInfant下拉列表中填充值,我正试图在drpAdult_SelectedIndexChanged Events上插入该下拉列表。感谢Andeas,它肯定是VB。netIs这是ajax请求(更新面板)吗?最初何时绑定下拉列表(页面加载、页面预渲染?是否仅当下拉列表不是回发时才使用初始值绑定?@ubaidashrafmasoody:是否使用调试器查看发生了什么?是否在触发此事件之前在页面加载中数据绑定一个或两个下拉列表?是否触发此事件(在此处设置断点)?@ubaidashrafmasoody:那么我假设您在
Page\u Load
中数据绑定
drpAdult
,即使在回发时也是如此。这将防止事件被触发。用
包围数据绑定如果不是IsPostBack,那么…
它工作了,drpAdult的自动回发为false,我将其更改为true,它工作正常我也尝试过,b但仍然没有变化。最初,drpInfant已经有两个列表项,分别为0和1。如果它们被覆盖,只要我根据drpAdult的所选值获取值,这无关紧要