XarDar XaaD Ответов: 1

Как я могу получить выбранное значение из переключателя и comapre с правильной опцией ?


Я получаю значения от переключателей с идентификатором, эти переключатели находятся в ретрансляторе . Правильный вариант в rd4. Я сравниваю rd1,rd2, & rd3 с rd4, если какой-либо из них соответствует, то count+1 else count остается 0, тогда этот результат подсчета я хочу показать в метке .но результат постоянно показывает 0, правильно это или нет...

Что я уже пробовал:

 protected void Button1_Click(object sender, EventArgs e)
        {
            int count1=0 ;

           
            if (Repeater1.Items.Count > 0)
            {
                for (int count = 0; count < Repeater1.Items.Count; count++)
                {
                    RadioButton rd1 = (RadioButton)Repeater1.Items[count].FindControl("RadioButton1");
                    RadioButton rd2 = (RadioButton)Repeater1.Items[count].FindControl("RadioButton2");
                    RadioButton rd3 = (RadioButton)Repeater1.Items[count].FindControl("RadioButton3");
                    RadioButton rd4 = (RadioButton)Repeater1.Items[count].FindControl("RadioButton31");
    if (rd1.Checked)
                    {
                        if (rd1 == rd4)
                        {
                            count1++;
                        }
                        else
                        {
                            count1 = count1 + 0;
                        }


                    }
                    if (rd2.Checked)
                    {
                        if (rd2 == rd4)
                        {
                            count1++;
                        }
                        else
                        {
                            count1 = count1 + 0;
                        }

                    }
                    if (rd3.Checked)
                    {
                        if (rd3 == rd4)
                        {
                            count1++;
                        }
                        else
                        {
                            count1 = count1 + 0;
                        }

                    }

            Label1.Text = Convert.ToString(count1);
}

Richard Deeming

Вы проверяете на эталонное равенство. Два разных примера этого RadioButton контроль никогда не будет таким же эталонным, поэтому ваши тесты никогда не будут успешными.

Непонятно, почему вы используете другой RadioButton за правильный ответ. Тем более что пользователь сможет проверить элемент управления, чтобы увидеть, каков правильный ответ.

Кроме того, все ваши else блоки, добавляющие ноль к переменной, являются избыточными. Добавление нуля к числу не будет иметь никакого значения.

1 Ответов

Рейтинг:
0

Member 13286677

Почему бы просто не присвоить значение, например "1" правильному ответу (это переключатель), а затем поставить то условие, которое добавляет счет для оценки, если значение равно 1.

е.г
если(rd=="1")
{
количество += 1;
вернуть
}
Этикетка 1.Текст = Преобразовать.ToString(count1);


Richard Deeming

Вы не можете применять оператор равенства на RadioButton и string.

То return оператор завершает текущую функцию без обновления метки.

И пользователь сможет просмотреть источник страницы, чтобы увидеть, какой вариант был правильным ответом.