使用CheckBoxList进行测验

时间:2019-03-05 01:04:18

标签: c# asp.net webforms

我是初学者。我正在为我的测验使用CheckBoxList。我希望值1-4是正确答案,而值5是不正确。然后通过我的结果标签显示结果 OnClick 。这样:

  1. 时尚与设计俱乐部(正确)
  2. 钓鱼俱乐部(正确)
  3. 舞蹈俱乐部(正确)
  4. 艺术俱乐部(正确)
  5. 无(不正确)

无论如何,如果5中包含1-4,我希望答案不正确。 我该怎么做??我尝试使用If语句,发现这显然行不通。

我的代码:

    protected void SubmitButton_Click(object sender, ImageClickEventArgs e)
    {            
       if (CheckBoxList1.SelectedValue == "1")
        {
            Results.Text += " <br> Question 4 is Correct. <br>";
        }
        else if (CheckBoxList1.SelectedValue == "5")
        {
            Results.Text += " Question 4 is Incorrect. <br>";
        }
    }

2 个答案:

答案 0 :(得分:0)

使用以下方法确定是否选择5。从点击事件按钮上调用此方法。

在下面的逻辑中,如果选择5或不选择5,则答案是错误的,但是如果选择1到4中的任何一个,则答案是正确的。

protected void SubmitButton_Click(object sender, ImageClickEventArgs e)
{
    bool is1To4Selected =  false;
    for (int i=0; i < CheckBoxList1.Items.Count; i++)
    {
      if (CheckBoxList1.Items[i].Selected  && CheckBoxList1.Items[i].Value == "5")
      {
       is1To4Selected = false;
       break;
      } else if(CheckBoxList1.Items[i].Selected) 
      {
        is1To4Selected = true;
      }
   }

   if(is1To4Selected)
   {
     Results.Text += " <br> Question 4 is Correct. <br>";
   } else {
      Results.Text += " Question 4 is Incorrect. <br>";
   }
}

答案 1 :(得分:0)

以下代码检查选中的项目列表中是否存在“ NONE”,然后答案为False。如果不是,则应至少选中其他框之一,以使答案为true

public bool isCorrect() {
    if (checkedListBox1.CheckedItems.Contains("NONE")) {
        return false; //wrong answer is selected
    }
    else if (checkedListBox1.CheckedIndices.Count > 0) {
        return true; //at least one correct answer is selected
    }
    else
    return false; //no option is selected
}