Как я могу получить выбранные значения для списка радиокнопок

Я работаю над генератором случайных викторин для Sharepoint, и я застрял в небольшой проблеме, когда проверяю, соответствует ли выбранный ответ правильному ответу.

у меня есть список радиокнопок, объявленный глобальным.

public static RadioButtonList[] RadioButtonList = new RadioButtonList[5]; //5 elements are enough, as i'll stick to a 5-question quiz for now.

Затем, при заполнении выпадающего списка, я создаю новый объект и добавляю элементы (ответы) в список.

for (var i=0; ... )
...
RadioButtonList[i] = new RadioButtonList();                 
RadioButtonList[i].Items.Add(SPListItemCollection[index]["Column"].ToString());
...

До сих пор все отлично работает. Все вышеперечисленное происходит в событии click для кнопки, которая генерирует код.

Моя проблема возникает в следующем событии, сделанном для кнопки Сравнить. Я пытаюсь сравнить выбранное значение радиокнопки с другим значением, хранящимся в метке, которая представляет правильный ответ. Дело в том, что не работает следующее условие:

for (var index ... )
....
if (RadioButtonList[index].SelectedValue.Equals(label_Response[index].Text))
...

"RadioButtonList[index].SelectedValue" всегда пусто, и я получаю исключение NullReferenceException при отладке.

Если кто-то может помочь мне решить эту проблему, или знает лучшее решение, я буду очень благодарен.

Заранее спасибо, Калин.

1 ответ

Это будет работать, только если будут выбраны ВСЕ радиокнопки. Вы идете по каждому радио-кнопке, когда только один может быть выбран за один раз. Попробуйте проверить не ноль.

for (var index ... )
....
if (RadioButtonList[index].SelectedValue!=null &&  RadioButtonList[index].SelectedValue.Equals(label_Response[index].Text))
...

Другое дело, как вы можете быть уверены, что label_Response[index] будет соответствовать RadioButtonList[index]? Это массивное предположение ИМХО.

Другие вопросы по тегам