/ / Как мога да извлича избрани стойности за списък с радио бутони - c #, sharepoint, radiobuttonlist

Как мога да извлека избрани стойности за списък с радиообавки - c #, sharepoint, radiobuttonlist

Работя върху генератор на случайни викторини за 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());
...

Досега всичко работи добре. Всичко това се случва в събитие за щракване на бутона, който генерира кода.

Моят проблем идва в следното събитие, направено забутона за сравнение. Опитвам се да сравня избраната стойност на радио бутона с друга стойност, запазена в етикет, която представлява правилния отговор. Работата е там, че следното условие не работи:

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

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

Ако някой може да ми помогне да решим този въпрос, или знае по-добро решение, ще бъда много благодарен.

Благодаря предварително, Калин.

Отговори:

0 за отговор № 1

Това ще работи само ако са избрани ВСИЧКИ радиобутони. Вие избирате всеки радиобутон, когато само един може да бъде избран едновременно. Опитайте да проверите дали не е нула.

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

Друго нещо, как можете да бъдете сигурни label_Response[index] ще съвпадне RadioButtonList[index]? Това е масивно предположение IMHO.