2013-05-24 4 views
5

Я пытаюсь изменить значения элементов списка выпадающего списка на основе значений другого выпадающего списка. Значения в списке значений drpAdult от 0 до 9 и значения списка drpInfant варьируются от 0- (значение параметра drpAdult выбрано).Добавить значения в раскрывающийся список программно во время выполнения

Так, например, если я выберу 5 в раскрывающемся списке drpAdult, диапазон значений элемента списка 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 

Что может вызвать эту проблему и как ее решить?

+0

Пожалуйста, уточните, что «мой код ниже не работает» _ Что это значит? –

+0

Я хочу сказать, что это не заполнение значений в раскрывающемся списке drpInfant, которое я пытаюсь вставить на drpAdult_SelectedIndexChanged событие –

+0

Спасибо Andeas, это, безусловно, есть VB.net –

ответ

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 
+0

Я пробовал это, но значения drpInfant вообще не меняются –

+0

@ubaidashrafmasoody: У вас есть использовал debugger, чтобы узнать, что происходит? Вы привязываете привязку одного или обоих dropdownlists в page_load до того, как это событие будет запущено? Является ли это событие инициированным вообще (устанавливаем там точку останова)? –

+0

Я добавил точку останова, но событие не запускается вообще. –

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 
+0

Я тоже пробовал это, но все равно никаких изменений. Первоначально drpInfant имеет два элемента списка уже как 0 и 1. Если они будут перезаписаны, это не имеет значения, если я получаю значения на основе выбранного значения drpAdult –

+0

Спасибо, он работает –

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 
Смежные вопросы