私は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が返されます。
誰でも私がこの問題を解決するのを助けたり、より良い解決策を知っていれば、私はとても感謝しています。
前もって感謝します、 Calin。
回答:
回答№1は0これは、すべてのラジオボタンが選択された場合にのみ機能します。一度に1つしか選択できないときは、ラジオボタンを押しています。 nullでないことを確認してください。
for (var index ... )
....
if (RadioButtonList[index].SelectedValue!=null && RadioButtonList[index].SelectedValue.Equals(label_Response[index].Text))
...
もう1つのことは、あなたがどのようにそれを確信できるか label_Response[index]
一致する RadioButtonList[index]
?これは大規模な仮定IMHOです。